SQL Server - 在select statment中将空字符串更改为空字符串

AJ.*_*AJ. 17 sql-server

我有一个SQL Server 2005表,其中包含一个字符串列,其中空值有时存储为NULL空字符串,其他时间存储为空字符串.

SELECT DISTINCT在这个列上做了一个,我得到所有不同的值+ NULL +空字符串.但我想要检查值是否为NULL并返回一个空字符串.因此,结果集将是所有不同的值+空字符串(如果任何值为null或空字符串).

但是如何在SELECT语句中执行此操作?

Fra*_*lis 41

查看SQL Server联机丛书中的ISNULL().

句法:

ISNULL ( check_expression , replacement_value )
Run Code Online (Sandbox Code Playgroud)

例:

Select ISNULL(myfield1,'') from mytable1
Run Code Online (Sandbox Code Playgroud)


Ode*_*ded 5

查看合并功能。它返回null传入的第一个非值。

COALESCE( myValue , '' )
Run Code Online (Sandbox Code Playgroud)

如果不为null,则返回myValue;如果为null,则返回空字符串('')。

它不像使用many ISNULL()IF子句那样冗长,因此更易于阅读。

  • “ COALESCE”和“ ISNULL”之间的最大区别在于,“ COALESCE”的返回类型由数据类型优先级确定。因此,`SELECT COALESCE(null,2,current_timestamp)`将返回值'1900-01-03 00:00:00.000`,而`SELECT COALESCE(null,'a',current_timestamp)`导致类型转换错误。 (2认同)