高性能Sql模板

1. 实现业务的查询 

优化方案:对业务的理解,界面录入的数据结构和查询的数据机构不一样。

select a.Id from UserRule_Config a ,BusinessRule_Config d

where ((a.Office='test_office' and a.Channel_ID='test_Channel_ID' ) or (a.Office is null and a.Channel_ID is null) ) and a.BusinessRule_id=d.Id

       and  exists (select 1 from ODRange_Config b,Place_Config c ,Place_Config e

                                   where a.BusinessRule_id=b.BusinessRule_id and   c.Place_Code='Place_code1'  and e.Place_Code='Place_code1'

                                         and

                                         ( (b.Ori_Type='P' and b.Ori=c.Place_Code  )   or

                                           (b.Ori_Type='C' and b.Ori=c.City_Code     )   or

                                           (b.Ori_Type='N' and b.Ori=c.ATPCO_Country)   or

                                           (b.Ori_Type='Z' and b.Ori=c.ZONE)   or

                                           (b.Ori_Type='A' and b.Ori=c.AREA) or 

                                           (b.Ori_Type='*' )

                                         )

                                       and

                                         ( (b.Des_Type='P' and b.Ori=e.Place_Code  )   or

                                           (b.Des_Type='C' and b.Ori=e.City_Code     )   or

                                           (b.Des_Type='N' and b.Ori=e.ATPCO_Country)   or

                                           (b.Des_Type='Z' and b.Ori=e.ZONE)   or

                                           (b.Des_Type='A' and b.Ori=e.AREA) or 

                                           (b.Des_Type='*' )

                                         )

                                         

                                   )

order by Office desc,Sequence_No

相关推荐