日期:2014-05-17  浏览次数:20881 次

oracle语句请教

表的结构如下

字段名称 字段值
姓名 kk
性别 男
年龄 13

如何用语句显示结果为

姓名 性别 年龄
kk 男 13

------解决方案--------------------
SQL code

with t(字段名称,字段值) as(
select '姓名','kk' from dual
union all select '性别','男' from dual
union all select '年龄','13' from dual 
)
select 
    max(decode(字段名称,'姓名',字段值,null)) 姓名,
    max(decode(字段名称,'性别',字段值,null)) 性别,
    max(decode(字段名称,'年龄',字段值,null)) 年龄
from t;

------解决方案--------------------
那就用動態的吧,行轉列,列轉行baidu下,很多的
------解决方案--------------------
写个过程或者函数用动态sql吧