好的,这是我想要完成的一些内容。我在select语句中有一个case语句。这就是我的......:
CASE pu.Group_Value
WHEN 1 THEN 'A'
WHEN 2 THEN 'B'
WHEN 3 then 'C'
WHEN 4 then 'D'
WHEN 5 then 'E'
WHEN 6 then 'F'
WHEN 7 then 'G'
END AS Groups,
我遇到的问题是这个案例陈述可以有多个回复。我需要做的是能够将它们合二为一。我最终有7行回来了,但只需要一行,在行列中包含所有7个字母......
谢谢!
答案 0 :(得分:1)
使用FOR XML PATH
。例如:
SELECT STUFF(
(
SELECT ','+ CASE pu.Group_Value
WHEN 1 THEN 'A'
...
END
FROM pu
FOR XML PATH('')
),1,1,'') as Groups
请确保不要在CASE逻辑中为NULL留下任何空间,否则会使整个字符串为NULL。
答案 1 :(得分:0)
你可能想做的是GROUP BY pu.Group_Value。
除了上面包含的内容之外,由此返回的行数取决于SQL查询的其余部分。如果您只想返回一行,那么SELECT TOP 1 ...是您最快的选择,否则您需要更加具体地使用WHERE子句标准或使用GROUP BY进行评估,这可能会更改您在其中包含的列SELECT。