SQL IS NOT NULL作为CASE语句中的值

时间:2014-08-11 07:24:55

标签: php mysql sql case

我有一个场景,如果B等于61,我想选择非空值,我似乎找不到正确的语法。

A          |        B
value1     |        61
value2     |        0 
NULL       |        61


WHERE A = CASE 
    WHEN B = 61
        THEN IS NOT NULL
    END

我想只选择A = value1

的行

3 个答案:

答案 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 )

这两个条件必须为真,才能使合并条件为真