我在一个表中有一个列,它可能包含空值或空值。我如何检查一个列是否为空或空的行中存在的表?
(e.g. null or '' or ' ' or ' ' and ...)
我在一个表中有一个列,它可能包含空值或空值。我如何检查一个列是否为空或空的行中存在的表?
(e.g. null or '' or ' ' or ' ' and ...)
当前回答
另一种方法没有WHERE,试试这个..
将选择空值和空值
SELECT ISNULL(NULLIF(fieldname,'')) FROM tablename
其他回答
获取包含NULL, 0, ", '', ''的行
SELECT * FROM table WHERE some_col IS NOT TRUE;
获取没有NULL, 0, ", '', ''的行
SELECT * FROM table WHERE some_col IS TRUE;
SELECT column_name FROM table_name WHERE column_name IN (NULL, '')
这句话对我来说更清晰更易读:
select * from my_table where ISNULL(NULLIF(some_col, ''));
如果你想在做ORDER BY时最后呈现NULL值,试试这个:
SELECT * FROM my_table WHERE NULLIF(some_col, '') IS NULL;
我的意见。
在MySQL中,你可以使用COALESCE函数:
返回列表中的第一个非NULL值,如果没有非NULL值,则返回NULL。
所以你可以这样简化你的查询:
SELECT * FROM table WHERE COALESCE(some_col, '') = '';