SELECT IFNULL(Col,'b') FROM Table
检查 Col,如果不为 null,则返回 Col,否则返回 b。
如何检查 Col,如果不为 null,则返回“a”,如果为 null,则返回“b”。
我试过这个:
SELECT IF(Col=NULL,'a','b') FROM Table
总是返回'b'。这是怎么做到的?
SELECT IFNULL(Col,'b') FROM Table
检查 Col,如果不为 null,则返回 Col,否则返回 b。
如何检查 Col,如果不为 null,则返回“a”,如果为 null,则返回“b”。
我试过这个:
SELECT IF(Col=NULL,'a','b') FROM Table
总是返回'b'。这是怎么做到的?
用于IS NULL
检查列是否为空,而不是= NULL
.
每个值都会与NULL
结果进行比较NULL
,所以你总会得到b
。
SELECT IF(Col IS NULL,'a','b') FROM Table
CASE
您可以使用适用于所有 DBMS 的ANSI SQL-92 兼容语句,而不是专有IF
语句。
SELECT CASE WHEN Col IS NULL THEN 'a' ELSE 'b' END AS Col
FROM Table
您当前的语句未按预期工作,因为您无法NULL
使用=
符号进行比较,您必须IS NULL
改用。
您可能想阅读三值逻辑
由于 Null 不是任何数据域的成员,因此它不被视为“值”,而是指示不存在值的标记(或占位符)。因此,与 Null 的比较永远不会导致 True 或 False,但总是会产生第三个逻辑结果,Unknown
比较空值时使用IS
而不是=
SELECT IF(Col IS NULL,'a','b')
FROM Table