【发布时间】:2015-10-22 13:00:01
【问题描述】:
这在 SQL 中怎么可能?
DECLARE @liststr VARCHAR(MAX)
;WITH COMMA (name)
AS
(
SELECT 'a'
UNION
SELECT 'b'
UNION
SELECT 'c'
UNION
SELECT 'd'
)
SELECT @liststr = CASE WHEN @liststr+',' IS NULL THEN '' ELSE @liststr+',' END + name
FROM comma
SELECT @liststr as Result
上述查询返回以下结果
+---------+
| Result |
+---------+
| a,b,c,d |
+---------+
如果我们删除 case 语句。
DECLARE @liststr VARCHAR(MAX)
;WITH COMMA (name)
AS
(
SELECT 'a'
UNION
SELECT 'b'
UNION
SELECT 'c'
UNION
SELECT 'd'
)
SELECT @liststr = @liststr+',' + name FROM comma
SELECT @liststr as Result
结果是
+--------+
| Result |
+--------+
| NULL |
+--------+
【问题讨论】:
标签: sql sql-server database tsql case