将包含空值的列中的字符串与 SQL 中的 case 语句连接起来
Concatenating string from columns that include nulls with case statement in TSQL
我正在尝试创建一个字符串,以插入新 table 中的列,该列由另一个 table.
的多个列构成
举个例子:
Source table
Value_1 : '10'
Value_2 : '30'
Value_3 : '120';
Destination table
Column A : '10,30,120,';
所以我的代码如下:
INSERT INTO DESTINATION TABLE
Value_1 + ',' +
Value_2 + ','+
Value_3 +',';
这很好用。我的问题是,如果源 table 中的其中一列等于 NULL,那么我的连接字符串结果为 NULL。
Source table
Value_1 : '10'
Value_2 : NULL
Value_3 : '120'
结果
Destination table
Column A : NULL
如果源 table 中的值之一为 NULL,我希望字符串的该部分仅具有“0”作为值。
换句话说,我想要的输出是:
Column A : '10,0,120,';
有人可以告诉我实现这个的语法吗?
如果相关,我使用的是 MSSQL server 2014。
原因是NULL
+ Anything
= NULL
,使用ISNULL
或COALESCE
函数替换0
时值为NULL
isnull(Value_1,0) + ',' +
isnull(Value_2,0) + ','+
isnull(Value_3,0) +','
我正在尝试创建一个字符串,以插入新 table 中的列,该列由另一个 table.
的多个列构成举个例子:
Source table
Value_1 : '10'
Value_2 : '30'
Value_3 : '120';
Destination table
Column A : '10,30,120,';
所以我的代码如下:
INSERT INTO DESTINATION TABLE
Value_1 + ',' +
Value_2 + ','+
Value_3 +',';
这很好用。我的问题是,如果源 table 中的其中一列等于 NULL,那么我的连接字符串结果为 NULL。
Source table
Value_1 : '10'
Value_2 : NULL
Value_3 : '120'
结果
Destination table
Column A : NULL
如果源 table 中的值之一为 NULL,我希望字符串的该部分仅具有“0”作为值。
换句话说,我想要的输出是:
Column A : '10,0,120,';
有人可以告诉我实现这个的语法吗?
如果相关,我使用的是 MSSQL server 2014。
原因是NULL
+ Anything
= NULL
,使用ISNULL
或COALESCE
函数替换0
时值为NULL
isnull(Value_1,0) + ',' +
isnull(Value_2,0) + ','+
isnull(Value_3,0) +','