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' ) |