Firebird SQL IF在哪里

Firebird SQL IF in where

我想从(库存)架子1和架子2的产品中选择数量,还要从架子3中列出项目,但将架子3的数量列出为数量= 0。

1
2
3
4
SELECT item, amount
FROM prodcuts
WHERE kind = 'bike'
AND (stock = 'shelf1' OR stock = 'shelf2' )

1
2
3
4
5
TABLE products
item    kind    stock   amount
cruiser bike    shelf1  1
cruiser bike    shelf2  2
racing  bike    shelf3  4

结果为

1
cruiser 3

但是我需要结果

1
2
cruiser 3
racing  0

您的结果似乎是:

1
2
3
SELECT p.item, SUM(CASE WHEN p.stock = 'shelf3' THEN 0 ELSE p.amount END)
FROM products p
GROUP BY p.item;

但是,我不太确定这与您的解释是否相符。


试试这个

1
2
3
4
SELECT item, CASE WHEN stock = 'shelf3' THEN 0 ELSE amount END AS amount
FROM prodcuts
WHERE kind = 'bike'
AND (stock = 'shelf1' OR stock = 'shelf2'' or stock = 'shelf3' )