1.可以用union all但繁琐,不灵活
2.采用decode+系统视图USER_TAB_COLS(推荐):
select B.column_name, decode(B.column_name, 'JOB_ID', A.Job_Id, 'ATTR_1', A.Atrr_1, 'PROC3', A.Atrr_3, null) value from sm_job_control A, (select column_name from user_tab_cols where column_id > 1 and table_name = 'SM_JOB_CONTROL') B
select C.column_name as key, C.value from (select B.column_name, decode(B.column_name, 'JOB_ID', A.Job_Id, 'ATTR_1', A.Atrr_1, 'ATTR_2', A.Atrr_2, 'ATTR_3', A.Atrr_3, 'ATTR_4', A.Atrr_4, 'ATTR_5', A.Atrr_5, 'F_ATTR_1', A.f_Atrr_1, 'F_ATTR_2', A.f_Atrr_2, 'F_ATTR_3', A.f_Atrr_3, 'F_ATTR_4', A.f_Atrr_4, 'F_ATTR_5', A.f_Atrr_5, null) value from sm_job_control A, (select s.COLUMN_NAME from user_tab_cols s where s.COLUMN_ID IN (2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14) and table_name = 'SM_JOB_CONTROL') B WHERE A.ID = 1) C where C.value is not null