小编典典

SQL如何在不考虑数据的情况下做一列的数据透视

sql

我基本上需要将多行更改为一行

所以基本上我有以下结果

myId  
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]


阅读 152

收藏
2021-05-16

共1个答案

小编典典

您可以使用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

2021-05-16