我们如何在 SQL ServerWHERE条件中检查列是否不为空且不是空字符串 ( '')?
WHERE
''
如果您只想将“”匹配为空字符串
WHERE DATALENGTH(COLUMN) > 0
如果您想将任何完全由空格组成的字符串计算为空
WHERE COLUMN <> ''
在子句中使用时,这两者都不会返回NULL值。WHEREAsNULL将评估UNKNOWN这些而不是TRUE.
NULL
UNKNOWN
TRUE
CREATE TABLE T ( C VARCHAR(10) ); INSERT INTO T VALUES ('A'), (''), (' '), (NULL); SELECT * FROM T WHERE C <> ''
只返回单行A。NULL即带有空字符串或完全由空格组成的字符串的行都被此查询排除在外。
A
SQL小提琴