选择Where子句

时间:2011-02-11 16:46:53

标签: sql-server

我在SQL Server中进行选择并说我的Select正在拉这样的数据,

ID Col1 Col2 Col3 Col4
1   xx   xx   xx   xx
2   null null null null
3   xx   xx   null null

我只想要记录中并非所有行都是空的。在上面的记录中,我不希望ID为2的行。

我如何在where子句中执行此操作?

感谢。

4 个答案:

答案 0 :(得分:5)

它们都具有相同的数据类型吗?如果是的话

WHERE COALESCE(Col1, Col2, Col3, Col4) IS NOT NULL

答案 1 :(得分:3)

马丁解决方案的替代方案:

Where Col1 Is Not Null
    Or Col2 Is Not Null
    Or Col3 Is Not Null
    Or Col4 Is Not Null

应该注意的是,如果任何列都不可隐式地转换为相同的数据类型(例如所有varchar或所有整数),那么COALESCE将抛出错误。

答案 2 :(得分:0)

Where not ( Col1 Is Null
    And Col2 Is Null
    And Col3 Is Null
    And Col4 Is Null) 

这将确保所有列都不为空

答案 3 :(得分:0)

Select Col1, Col2, Col3, Col4
from table
where Col1>''
and Col2>''
and Col3>''
and Col4>''

这样做是为了选择实际上有数据的所有行。但是,如果您需要选择bal字段但不是null,则必须将其更改为> =。此查询还将使我认为的覆盖索引更加合理。