我基本上需要将多行更改为一行
所以基本上我有以下结果
myId apple bear tiger
我想将其更改为apple| bear| tiger 但是如何在不知道数据结果是什么的情况下如何使用数据透视表呢?我试过了
apple
bear
tiger
SELECT * FROM (SELECT TOP (3) myId FROM myTable) src PIVOT (max (myId ) FOR myId IN ([1], [2], [3])) piv;
但数据不是[1],[2],[3]
您可以使用ROW_NUMBER()对行进行编号,并使用手动数据透视表将其转换为字段;
WITH cte AS ( SELECT myId, ROW_NUMBER() OVER (ORDER BY myId) rn FROM mytable ) SELECT MAX(CASE WHEN rn=1 THEN myId END) field1, MAX(CASE WHEN rn=2 THEN myId END) field2, MAX(CASE WHEN rn=3 THEN myId END) field3 FROM cte;
要使用进行测试的SQLfiddle。