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

(e.g. null or '' or '  ' or '      ' and ...)

当前回答

要么

SELECT IF(field1 IS NULL or field1 = '', 'empty', field1) as field1 from tablename

or

SELECT case when field1 IS NULL or field1 = ''
        then 'empty'
        else field1
   end as field1 from tablename

其他回答

SELECT column_name FROM table_name WHERE column_name IN (NULL, '')

下面的SQL查询工作正常。

SELECT * FROM <table-name> WHERE <column-name> IS NULL;

我讨厌数据库中杂乱的字段。如果列可能是一个空白字符串或null,我宁愿在每次执行选择之前修复这个问题,像这样:

UPDATE MyTable SET MyColumn=NULL WHERE MyColumn='';
SELECT * FROM MyTable WHERE MyColumn IS NULL

这可以保持数据整洁,只要您不需要出于某种原因特别区分NULL和empty。

try

SELECT 0 IS NULL ,  '' IS NULL , NULL IS NULL

-> 0, 0, 1

or

SELECT ISNULL('  ') , ISNULL( NULL )
 -> 0 ,1

参考

如果数据类型为字符串且行为空,请尝试此操作

SELECT * FROM table WHERE column_name IS NULL OR column_name = ''

如果数据类型为int或列为0,则尝试此操作

SELECT * FROM table WHERE column_name > = 0