当前位置: 代码迷 >> Oracle管理 >> ,套用when case
  详细解决方案

,套用when case

热度:17   发布时间:2016-04-24 05:00:39.0
求助,套用when case
原sql
SQL code
select pgdwgms.isse_no, pgdwgms.dwg_no  from pgdwgms, pgissetr, pgappref where (pgissetr.isse_no like '%06%' and pgappref.upd_who = '1001' and       pgappref.table_no = '1' and pgappref.record_type = '4' and       pgappref.seq_no = pgissetr.seq_no and       pgissetr.isse_no = pgdwgms.isse_no)    or (pgdwgms.dwg_no like '%SAA%' and pgappref.upd_who = '1001' and       pgappref.table_no = '1' and pgappref.record_type = '4' and       pgappref.seq_no = pgissetr.seq_no and       pgissetr.isse_no = pgdwgms.isse_no)    or (pgdwgms.dwg_name_j like '%支架%' and pgappref.upd_who = '1001' and       pgappref.table_no = '1' and pgappref.record_type = '4' and       pgappref.seq_no = pgissetr.seq_no and       pgissetr.isse_no = pgdwgms.isse_no)    or (pgdwgms.dwg_name_e like '%支架%' and pgappref.upd_who = '1001' and       pgappref.table_no = '1' and pgappref.record_type = '4' and       pgappref.seq_no = pgissetr.seq_no and       pgissetr.isse_no = pgdwgms.isse_no)    or (pgissetr.title_j like '%ML-GS%' and       pgappref.upd_who = '1001' and pgappref.table_no = '1' and       pgappref.record_type = '4' and pgappref.seq_no = pgissetr.seq_no and       pgissetr.isse_no = pgdwgms.isse_no)    or (pgissetr.title_j like '%ML-GS%' and       pgappref.upd_who = '1001' and pgappref.table_no = '1' and       pgappref.record_type = '4' and pgappref.seq_no = pgissetr.seq_no and       pgissetr.isse_no = pgdwgms.isse_no)


想达到类似于这句sql效果
SQL code
select * from(  select Rt_Basic_Data.*,    (case when Parent_dwg_no like '%SA%' then 1 else 0 end) title_weight,    (case when parent_rev_no like '%1%' then 1 else 0 end) dept_weight,    (case when dwg_no like '%G%' then 1 else 0 end) dwg_weight  from Rt_Basic_Data) where (title_weight+dept_weight)>0order by (title_weight+dept_weight) desc


我改成如下格式,执行无效
SQL code
select * from(select pgdwgms.isse_no, pgdwgms.dwg_no,    (case when (pgissetr.isse_no like '%06%' and pgappref.upd_who = '1001' and       pgappref.table_no = '1' and pgappref.record_type = '4' and       pgappref.seq_no = pgissetr.seq_no and       pgissetr.isse_no = pgdwgms.isse_no) then 1 else 0 end) search_isse_no,   (case when (pgdwgms.dwg_no like '%SAA%' and pgappref.upd_who = '1001' and       pgappref.table_no = '1' and pgappref.record_type = '4' and       pgappref.seq_no = pgissetr.seq_no and       pgissetr.isse_no = pgdwgms.isse_no) then 1 else 0 end) search_dwg_no,   (case when (pgdwgms.dwg_name_j like '%支架%' and pgappref.upd_who = '1001' and       pgappref.table_no = '1' and pgappref.record_type = '4' and       pgappref.seq_no = pgissetr.seq_no and       pgissetr.isse_no = pgdwgms.isse_no) then 1 else 0 end) search_dwg_name_j,   (case when (pgdwgms.dwg_name_e like '%支架%' and pgappref.upd_who = '1001' and       pgappref.table_no = '1' and pgappref.record_type = '4' and       pgappref.seq_no = pgissetr.seq_no and       pgissetr.isse_no = pgdwgms.isse_no) then 1 else 0 end) search_dwg_name_e,   (case when (pgissetr.title_j like '%ML-GS%' and       pgappref.upd_who = '1001' and pgappref.table_no = '1' and       pgappref.record_type = '4' and pgappref.seq_no = pgissetr.seq_no and       pgissetr.isse_no = pgdwgms.isse_no) then 1 else 0 end) search_title_j,   (case when (pgissetr.title_e like '%ML-GS%' and       pgappref.upd_who = '1001' and pgappref.table_no = '1' and       pgappref.record_type = '4' and pgappref.seq_no = pgissetr.seq_no and       pgissetr.isse_no = pgdwgms.isse_no) then 1 else 0 end) search_title_e    from pgdwgms, pgissetr, pgappref  )where (search_isse_no+search_dwg_no+search_dwg_name_j+search_dwg_name_e+search_title_j+search_title_e)>0order by (search_isse_no+search_dwg_no+search_dwg_name_j+search_dwg_name_e+search_title_j+search_title_e) desc
  相关解决方案