表结构:tableresid value name //列名
c: 3 aa
c: 4 bb
d: 5 aa
d: 6 bb现在想要的效果是:
resid aa bb //列名
c: 3 4
d: 5 6 大致的效果是把name里的值当成 展现的列, 把value里的值当成 值。求高手帮忙写个,先谢谢了。
c: 3 aa
c: 4 bb
d: 5 aa
d: 6 bb现在想要的效果是:
resid aa bb //列名
c: 3 4
d: 5 6 大致的效果是把name里的值当成 展现的列, 把value里的值当成 值。求高手帮忙写个,先谢谢了。
MAX(DECODE(NAME, 'aa', VALUE, NULL)) AA,
MAX(DECODE(NAME, 'bb', VALUE, NULL) BB
FROM TABLE1
GROUP BY RESID
思路如上SQL,name如果确定,就是可以用SQL,否则就要过程拼接SQL
2、使用Case When 然后使用聚合函数
3、使用PL/SQL 拼SQL进行动态转换
4、使用11G的新特性PIVOT