如何在SQL Server WHERE
条件中检查列是否不为null且不是空字符串(''
)?
发布于 2011-12-29 03:15:11
如果您只想将"“作为空字符串进行匹配
WHERE DATALENGTH(COLUMN) > 0
如果要将完全由空格组成的任何字符串计为空
WHERE COLUMN <> ''
当在WHERE
子句中使用时,这两种方法都不会返回NULL
值。因为对于这些,NULL
将评估为UNKNOWN
,而不是TRUE
。
CREATE TABLE T
(
C VARCHAR(10)
);
INSERT INTO T
VALUES ('A'),
(''),
(' '),
(NULL);
SELECT *
FROM T
WHERE C <> ''
仅返回单行A
。也就是说,包含NULL
、空字符串或完全由空格组成的字符串的行都将被此查询排除。
发布于 2013-01-16 22:58:35
Coalesce会将空值合并为默认值:
COALESCE (fieldName, '') <> ''
发布于 2017-10-17 16:33:35
以基本的方式
SELECT *
FROM [TableName]
WHERE column_name!='' AND column_name IS NOT NULL
https://stackoverflow.com/questions/8660203
复制相似问题