Sql server 在select语句中将空字符串更改为空字符串
我有一个SQL Server 2005表,它有一个字符串列,其中空值有时存储为Sql server 在select语句中将空字符串更改为空字符串,sql-server,Sql Server,我有一个SQL Server 2005表,它有一个字符串列,其中空值有时存储为NULL,有时存储为空字符串 我在这个列上做了一个选择DISTINCT,得到了所有的DISTINCT值+NULL+空字符串。但是我想检查值是否为NULL,并返回一个空字符串。因此,结果集将是所有不同的值+空字符串(如果任何值为null或空字符串) 但是如何在SELECT语句中执行此操作?在中签出ISNULL() 语法: ISNULL ( check_expression , replacement_value ) 例
NULL
,有时存储为空字符串
我在这个列上做了一个选择DISTINCT
,得到了所有的DISTINCT值+NULL+空字符串。但是我想检查值是否为NULL,并返回一个空字符串。因此,结果集将是所有不同的值+空字符串(如果任何值为null或空字符串)
但是如何在SELECT语句中执行此操作?在中签出ISNULL()
语法:
ISNULL ( check_expression , replacement_value )
例如:
Select ISNULL(myfield1,'') from mytable1
看看函数。它返回传入的第一个非null
值
COALESCE( myValue , '' )
如果myValue不为空,则返回myValue;如果为空,则返回空字符串('
)
与使用许多
ISNULL()
和IF
子句相比,它没有那么冗长,因此更易于阅读。COALESCE和ISNULL
之间的一大区别是COALESCE
的返回类型由数据类型优先级决定。因此selectcoalesce(null,2,current\u timestamp)
将返回值1900-01-03 00:00:00.000
,而selectcoalesce(null,'a',current\u timestamp)
将导致类型转换错误。为什么需要在IF
语句中使用ISNULL()
?
SELECT DISTINCT ISNULL(columnname, '') FROM table WHERE ...