我在一个表中有一个列,它可能包含空值或空值。我如何检查一个列是否为空或空的行中存在的表?

(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, '') = '';