将值插入SQL Server数据库

时间:2018-07-24 17:47:20

标签: python sql sql-server pandas

我正在使用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

希望我的解释被清楚地描述,感谢答案

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;