ITPub博客

首页 > 数据库 > Oracle > 一个SQL优化

一个SQL优化

原创 Oracle 作者:mahe0207 时间:2014-12-12 15:41:03 0 删除 编辑
把where条件改写了

  1. (
  2.   (
  3.     (
  4.      (select aco.iauthcontrol 
  5.       from BG_AUTHCONTROLOBJ aco 
  6.       where aco.cobjcode = \'105\' and 
  7.             aco.corgnid = {CORGNID:\'\'}) = 0
  8.     )
  9.     or
  10.     (select count(cguid) 
  11.      from BG_AUTHCONTROLOBJ aco 
  12.      where aco.cobjcode = \'105\' and 
  13.             aco.corgnid = {CORGNID:\'\'}) = 0
  14.   )
  15.   or
  16.   (
  17.    (select aco.iauthcontrol 
  18.     from BG_AUTHCONTROLOBJ aco 
  19.     where aco.cobjcode = \'105\' and 
  20.           aco.corgnid = {CORGNID:\'\'}) = 1 and
  21.           (
  22.            ( 
  23.             (select akj.iauthcontrol 
  24.              from BG_AUTHASSIGNKJ akj 
  25.              where akj.carchiveguid ={cBGCaliberKey3GUID:\'\'} and 
  26.                    akj.corganguid = {CORGNID:\'\'}) = 0
  27.              or
  28.              (select count(cguid) 
  29.               from BG_AUTHASSIGNKJ akj 
  30.               where akj.carchiveguid ={cBGCaliberKey3GUID:\'\'} and 
  31.                     akj.corganguid = {CORGNID:\'\'}) = 0
  32.            )
  33.            or
  34.            (
  35.             (select akj.iauthcontrol 
  36.              from BG_AUTHASSIGNKJ akj 
  37.              where akj.carchiveguid ={cBGCaliberKey3GUID:\'\'} and 
  38.                    akj.corganguid = {CORGNID:\'\'}) = 1 and 
  39.                    b1.cguid in ( select distinct babg.cbillcguid 
  40.                                  from BG_AUTHASSIGNBG babg
  41.                                  where babg.cuserguid = {cCreatorGUID} and 
  42.                                        babg.corganguid = {CORGNID:\'\'} and 
  43.                                        babg.icontrol = 1 and 
  44.                                        babg.cobjguid = (select baco.cguid
  45.                                                         from BG_AUTHCONTROLOBJ baco
  46.                                                         where baco.cobjcode = \'105\' and 
  47.                                                               baco.corgnid = {CORGNID:\'\'})
  48.                                 )
  49.              )
  50.             )
  51.   )
  52. )
改用case when
  1. (case (select aco.iauthcontrol 
  2.        from BG_AUTHCONTROLOBJ aco 
  3.        where aco.cobjcode = \'105\' and 
  4.               aco.corgnid = {CORGNID:\'\'})
  5.  when 1 then (case (select akj.iauthcontrol 
  6.                     from BG_AUTHASSIGNKJ akj 
  7.                     where akj.carchiveguid ={eleType:\'\'} and 
  8.                           akj.corganguid = {CORGNID:\'\'})
  9.               when 1 then (case when c.cguid in (select distinct babg.cbillcguid 
  10.                                                  from BG_AUTHASSIGNBG babg
  11.                                                  where babg.cuserguid = {cCreatorGUID} and 
  12.                                                        babg.corganguid = {CORGNID:\'\'} and 
  13.                                                        babg.icontrol = 1 and 
  14.                                                        babg.cobjguid = (select baco.cguid
  15.                                                                         from BG_AUTHCONTROLOBJ baco
  16.                                                                         where baco.cobjcode = \'105\' and 
  17.                                                                               baco.corgnid = {CORGNID:\'\'}) ) then 1
  18.                             else 0 end
  19.                            )
  20.               else 1 end
  21.              )
  22.  else 1 end
  23. )=1

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29437301/viewspace-1365754/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-01-11

  • 博文量
    26
  • 访问量
    101264