我想知道:是否可以在WHERE子句中为SELECT使用IF语句? 这是一个样本:
SELECT var1, var2, .. AS name
FROM table1 C, table2 F, table3 D,..
WHERE C.id = f.id, AND ..
AND (IF expression THEN F.num <0; -- <-- is this possible?
ELSE F.num >0);
提前致谢
答案 0 :(得分:1)
在此场景中:使用 CASE 声明
SELECT var1, var2, .. AS name
FROM table1 C, table2 F, table3 D,..
WHERE C.id = f.id, AND ..
AND COL = (CASE WHEN F.NUM <0 THEN (UR COL)
WHEN ELSE F.num > 0 ELSE '' END)
以上代码仅为示例,请尝试应用您自己的方案。
答案 1 :(得分:0)
SELECT
.
.
WHERE ..
AND SIGN(F.NUM) = DECODE(expression,-1,1);
比我想象的更简单。对不起,麻烦
答案 2 :(得分:0)
你应该可以不用if语句。
Where (expression And num >0)
Or ( not( expression) and num<0)