很像这个原来的SO在 Oracle 中动态地将行转换为列 https://stackoverflow.com/questions/7730111/pivoting-rows-into-columns-dynamically-in-oracle
但我想做相反的事
我怎样才能得到
ID NAME AGE GENDER STATUS
---- ----- ----- ------ --------
1 Bob 30 male
2 Susan married
进入这个
ID K V
---- ----- -----
1 name Bob
1 age 30
1 gender male
2 name Susan
2 status married
您正在寻找unpivot
.
select * from t
unpivot (
v for k in ("NAME","AGE","GENDER","STATUS")
) u
如果年龄列是整数,则可能存在类型不匹配。在这种情况下,在取消旋转之前将其转换为字符。
select *
from (select id,name,to_char(age) age,gender,status from t) t
unpivot (
v for k in ("NAME","AGE","GENDER","STATUS")
) u
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)