将 table 的多列转换为多行,所有其他行重复
Converting multiple Columns of a table into multiple Rows with all other rows repeating
我有这样的东西
Id
ddf1
ddf2
ddf3
ddf4
1
223
112
221
500
我想要这样的东西
Id
ddfs
1
223
1
112
1
221
1
500
我的查询中还有其他列。所以我想要一个不影响我的其他专栏的解决方案。
你可以这样做。
查看工作 fiddle here
select id,ddfs
from yourtable t cross apply
(values ('ddf1',t.ddf1),('ddf2',t.ddf2), ('ddf3',t.ddf3) ,('ddf4',t.ddf4)) v(k,ddfs)
我有这样的东西
Id | ddf1 | ddf2 | ddf3 | ddf4 |
---|---|---|---|---|
1 | 223 | 112 | 221 | 500 |
我想要这样的东西
Id | ddfs |
---|---|
1 | 223 |
1 | 112 |
1 | 221 |
1 | 500 |
我的查询中还有其他列。所以我想要一个不影响我的其他专栏的解决方案。
你可以这样做。 查看工作 fiddle here
select id,ddfs
from yourtable t cross apply
(values ('ddf1',t.ddf1),('ddf2',t.ddf2), ('ddf3',t.ddf3) ,('ddf4',t.ddf4)) v(k,ddfs)