我正在使用python和microsoft sql server,希望将数据值垂直放入我的数据库中,但是数据库会水平批准这些值。我使用pd.Excelfile读取文件。一个例子是:
数据库批准以下垂直值:
A 1 2 3 4 5 6 7 8 9
B 3 4 5 6 7 8 2 6 7
C 8 9 4 6 3 2 5 1 3
但是我宁愿水平阅读它:
A B C
1 3 8
2 4 9
3 5 4
4 6 6
5 7 3
6 8 2
7 6 5
8 7 1
希望我的解释被清楚地描述,感谢答案
答案 0 :(得分:0)
您可以使用apply
:
with t1 as (
select t.col, tt.cols, row_number() over (partition by t.col order by cols) seq
from table t cross apply
( values (col1), (col2), . . .
) tt (cols)
)
select max(case when col = 'A' then cols end) as [A],
max(case when col = 'B' then cols end) as [B],
max(case when col = 'C' then cols end) as [C]
from t1
group by seq;