1

我有一个像 table1(id int,name VC,description VC); 该表包含 100 条记录。对于描述列,它有一些空格和空值我想消除描述值为空或空格的行?

我试过这样

select * from table1 where description not in('',NULL); //Displaying nothing

But

select * from table1 where description in('',NULL);// It is displaying all the rows which contains white spaces but not Nulls

我很困惑。IN 运算符也接受 varchar,如果我不使用 NOT,我会得到正确的结果,但是如果我使用 NOT,为什么我没有得到。

提前致谢..

4

4 回答 4

2

试试这个:

select * from table1 where description not in('') and description is not null;

于 2012-12-06T09:37:31.067 回答
1

您需要使用 IS NOT NULL 来比较空值

select * from table1 where description is not null and description <> ''
于 2012-12-06T09:38:42.407 回答
0

因为 SQL“IN”条件有助于减少使用多个 SQL“OR”条件的需要。

所以,写:

description not in('',NULL);

相同:

!(description='' OR description is NULL)

写起来是一样的:

!(description='') AND description is not NULL
于 2012-12-06T09:39:41.840 回答
0

可以试试这个 - 这将类似于 c# .IsNullOrWhitespace

SELECT * FROM Table1 WHERE Description IS NOT NULL AND LEN(TRIM(Description) > 0)

于 2012-12-06T09:41:27.907 回答