求一个sql或者存储过程

zjfplayer 2014-09-09 11:41:03
select
A.COLUMN_NAME,
b.COMMENTS,
decode(a.COLUMN_NAME,'RANK',1,'T_ABAS',2,'T_AS',3,'T_WF',4,'T_EXS',5,'T_EWS',6) disp
from
ALL_TAB_COLUMNS a,user_col_comments b
WHERE
A.TABLE_NAME ='K_KM_PM' and a.COLUMN_NAME=b.COLUMN_NAME and b.TABLE_NAME='K_KM_PM' and
(a.COLUMN_NAME='RANK' or --综合排名
a.COLUMN_NAME='T_ABAS' or --综合得分
a.COLUMN_NAME='T_AS' or --预警率得分
a.COLUMN_NAME='T_WF' or --预警完成率得分
a.COLUMN_NAME='T_EXS' or --超期率得分
a.COLUMN_NAME='T_EWS' --预警指标率得分
)
order by disp

这个查询的结果集如下:
COLUMN_NAME COMMENTS disp
RANK 综合排名 1
T_ABAS 综合得分 2
T_AS 预警率得分 3
T_WF 预警完成率得分 4
T_EXS 超期率得分 5
T_EWS 预警指标率得分 6
上面结果集为我要查询的表 表ABC的字段名称和字段的顺序,请问我如何获取如下的结果集
name value
综合排名 11名
综合得分 22分
预警率得分 33分
预警完成率得分 44分
超期率得分 55分
预警指标率得分 12分
...全文
224 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
binsweet 2014-09-11
  • 打赏
  • 举报
回复
SELECT a.column_name,
       b.comments,
       (SELECT decode(a.column_name, 'RANK', c.rank, 'T_ABAS', c.t_abas, 'T_AS', c.t_as, 'T_EXS', c.t_exs, c.t_ews) FROM k_km_pm c) VALUE,
       decode(a.column_name, 'RANK', 1, 'T_ABAS', 2, 'T_AS', 3, 'T_WF', 4, 'T_EXS', 5, 'T_EWS', 6) disp
  FROM all_tab_columns   a,
       user_col_comments b
 WHERE a.table_name = 'K_KM_PM'
   AND a.column_name = b.column_name
   AND b.table_name = 'K_KM_PM'
   AND (a.column_name = 'RANK' OR --综合排名
       a.column_name = 'T_ABAS' OR --综合得分
       a.column_name = 'T_AS' OR --预警率得分
       a.column_name = 'T_WF' OR --预警完成率得分
       a.column_name = 'T_EXS' OR --超期率得分
       a.column_name = 'T_EWS' --预警指标率得分
       )
 ORDER BY disp
zjfplayer 2014-09-09
  • 打赏
  • 举报
回复
现在的遇到的难点就是 如何类似java的反射机制 Class.forName("a1")根据字符串获取类 oracle里面通过 COLUMN_NAME COMMENTS disp RANK 综合排名 1 T_ABAS 综合得分 2 T_AS 预警率得分 3 T_WF 预警完成率得分 4 T_EXS 超期率得分 5 T_EWS 预警指标率得分 6 这个结果集来做左连接 ,来查另外一张b表的 b.rank,b.t_abas。。。。。。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧