将SQL行中的空格视为null

时间:2012-11-16 06:31:04

标签: sql null trim

我想从表中获取“Address”列不为空的所有数据 所以我做了一个看起来像这样的声明......

从表中选择*,其中地址不为空

不幸的是,“Address”列中有些行有空格,因此SQL不能将其视为Null

如何显示Address不为空的行? 谢谢:))

1 个答案:

答案 0 :(得分:2)

大多数数据库系统都有NULLIF()函数。如果不是更早的话,它与ANSI SQL-99 standard中的COALESCE()一起定义。它至少在SQL Server,Oracle,PostgreSQL,MySQL,SQLite,DB2,Firebird中实现。

Select * from Table where NULLIF(Address,'') is not null

但对我来说,我更喜欢这个

Select * from Table where Address > ''

它一次性杀死空值和空字符串。它甚至会排除完全由空格组成的字符串('',''等)。它还保留了SARGability。