如何实现此输出
TableName:测试
Code Description
A Apple
B Ball
C Cat
输出:查询
Apple Ball Cat
A B C
答案 0 :(得分:1)
如果您使用的是SQL服务器,请使用以下PIVOT表:
CREATE TABLE #Table(Code VARCHAR(1), Description VARCHAR(15) )
INSERT INTO #Table(Code , Description )
SELECT 'A','Apple' UNION ALL
SELECT 'B','Ball' UNION ALL
SELECT 'C','Cat'
SELECT *
FROM
(
SELECT Code , Description
FROM #Table
) A
PIVOT
(
MAX(Code) FOR Description IN ([Apple],[Ball],[Cat])
)pvt
编辑:用于动态数据透视
DECLARE @DynamicString VARCHAR(MAX) = '' , @DynamicPvt VARCHAR(MAX) = ''
SELECT @DynamicString =
(
SELECT STUFF ((SELECT ',' + RTRIM(Description) FROM #Table FOR XML
PATH('')),1,1,'')
)
SET @DynamicPvt = 'SELECT *
FROM
(
SELECT Code , Description FROM #Table
)A
PIVOT
(
MAX(Code) FOR Description IN ('+@DynamicString+')
)
PVt'
EXEC (@DynamicPvt)