SELECT IFNULL(Col,'b') FROM Table
检查Col并返回Col如果不为null,否则返回b。
如何检查Col,如果不为null,则返回'a';如果为null,则返回'b'。
我试过了:
SELECT IF(Col=NULL,'a','b') FROM Table
总是返回'b'。这是怎么做到的?
答案 0 :(得分:6)
使用IS NULL
检查列是否为空,而不是= NULL
。
每个值与NULL
相比较,结果为NULL
,因此您始终会获得b
。
SELECT IF(Col IS NULL,'a','b') FROM Table
答案 1 :(得分:0)
您可以使用与所有DBMS相同的ANSI SQL-92兼容CASE
语句,而不是专有的IF
语句。
SELECT CASE WHEN Col IS NULL THEN 'a' ELSE 'b' END AS Col
FROM Table
您当前的声明无法按预期运行,因为您无法使用NULL
符号比较=
,而是必须使用IS NULL
。
您可能需要阅读Three Valued Logic
由于Null不是任何数据域的成员,因此不被视为a “值”,而是表示缺席的标记(或占位符) 有价值的。因此,与Null的比较永远不会导致 无论是真还是假,但总是在第三个逻辑结果中,未知
答案 2 :(得分:0)
比较空值时,请使用IS
代替=
SELECT IF(Col IS NULL,'a','b')
FROM Table