我正在做一個報告,我不能以編程方式構建SQL。我有兩個值被輸入到報告中。可以是以下三個選項之一的值:有條件的地方在基於值的SQL中?
- 贖回
- 購買
- 贖回和購買
查詢需要有一個WHERE子句。如果「贖回」被送入,它必須有:
... WHERE balance < 0
如果「購買」被送入,它必須有:
... WHERE balance >= 0
如果兩者都饋入,這種情況可以被排除在外完全,或者也可以說:
... WHERE balance >= 0 OR balance < 0 --> but this is redundant
是否有適用這種邏輯在SQL的方式?在SQL中是這樣可能的:
SELECT * FROM account WHERE (if param1 = 'redeem' then 'balance <= 0) ... etc
?
使用'case'在'where',這可能是有用的:http://stackoverflow.com/questions/6812276/how-to-use-case-in-where-clause –