Sql server 在select语句中将空字符串更改为空字符串

Sql server 在select语句中将空字符串更改为空字符串,sql-server,Sql Server,我有一个SQL Server 2005表,它有一个字符串列,其中空值有时存储为NULL,有时存储为空字符串 我在这个列上做了一个选择DISTINCT,得到了所有的DISTINCT值+NULL+空字符串。但是我想检查值是否为NULL,并返回一个空字符串。因此,结果集将是所有不同的值+空字符串(如果任何值为null或空字符串) 但是如何在SELECT语句中执行此操作?在中签出ISNULL() 语法: ISNULL ( check_expression , replacement_value ) 例

我有一个SQL Server 2005表,它有一个字符串列,其中空值有时存储为
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 ...