我有以下内容:
BEGIN TRANSACTION
CREATE TABLE #temp
(
testing VARCHAR(MAX)
)
INSERT INTO #temp
( testing )
VALUES ('Boomerang')
INSERT INTO #temp
( testing )
VALUES ('Bowling')
INSERT INTO #temp
( testing )
VALUES ('Boxing')
INSERT INTO #temp
( testing )
VALUES ('Bull Fighting')
SELECT *
FROM #temp
ROLLBACK TRANSACTION
我正在尝试将其显示为单列结果,如下所示:
回旋镖|保龄球|拳击|斗牛
但是我不知道该怎么做。我看过Pivot,但它似乎没有解决我的问题。
答案 0 :(得分:3)
这是使用string concatenation
与Isnull() [or coalesce()] function
进行此操作的另一种方法。
<强> Fiddle demo 强>:
declare @str varchar(max)
Select @str = isnull(@str + '|', '') + testing
From temp
Order by testing
Select @str
--Results
Boomerang|Bowling|Boxing|Bull Fighting
答案 1 :(得分:2)
SELECT STUFF(
(
SELECT '|' + testing
FROM #temp
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)'), 1, 1, '') list
输出:
| LIST | |----------------------------------------| | Boomerang|Bowling|Boxing|Bull Fighting |
这是 SQLFiddle 演示