我在一个表中有一个列,它可能包含空值或空值。我如何检查一个列是否为空或空的行中存在的表?
(e.g. null or '' or ' ' or ' ' and ...)
我在一个表中有一个列,它可能包含空值或空值。我如何检查一个列是否为空或空的行中存在的表?
(e.g. null or '' or ' ' or ' ' and ...)
当前回答
select * from table where length(RTRIM(LTRIM(column_name))) > 0
其他回答
获取包含NULL, 0, ", '', ''的行
SELECT * FROM table WHERE some_col IS NOT TRUE;
获取没有NULL, 0, ", '', ''的行
SELECT * FROM table WHERE some_col IS TRUE;
这句话对我来说更清晰更易读:
select * from my_table where ISNULL(NULLIF(some_col, ''));
下面的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
参考