我有一个场景,如果B等于61,我想选择非空值,我似乎找不到正确的语法。
A | B
value1 | 61
value2 | 0
NULL | 61
WHERE A = CASE
WHEN B = 61
THEN IS NOT NULL
END
我想只选择A = value1
的行答案 0 :(得分:1)
为什么不直接前进?
WHERE (B=61) AND (A IS NOT NULL)
答案 1 :(得分:0)
你可以这样:
//thats really straight forward:
WHERE (A IS NOT NULL AND B=61)
或者他们是另一种嗤之以鼻的方式:)
WHERE
IF(A IS NOT NULL AND B=61,1,0) //add other conditions as you like
答案 2 :(得分:0)
在许多情况下,没有必要在where子句中使用case表达式或IF(),通常它是通过组合括号中的条件来处理的。
WHERE ( B = 61 AND A IS NOT NULL )
这两个条件必须为真,才能使合并条件为真