m0_67122663 2022-03-03 23:28 采纳率: 75%
浏览 22
已结题

SQL语句如何优化。

是个判断语句,IF(and(or(字段1=,字段1=,字段1=,),or(字段2=,字段2=,字段2=,)),"电信",IF(and(or(字段1=,字段1=,字段1=,),or(字段2=,字段2=,字段2=,)),"联通",“移动”)

代码如下:
select
A.fsaf,
A.fdssag,
A.yrtre,
case when (A.fdssag='T169罛 '
or A.fdssag='L562窸J'
or A.fdssag='Y435?'
or A.fdssag='K896?:'
or A.fdssag='D443?P'
or A.fdssag='G624?/'
or A.fdssag='I241翭V'
or A.fdssag='Q785穙/'
or A.fdssag='Y624僚N'
or A.fdssag='E88淋4'
or A.fdssag='B648緰S'
or A.fdssag='S231綛:'
or A.fdssag='W191帛@'
or A.fdssag='W106繣0'
or A.fdssag='L151?'
or A.fdssag='T558礣O'
or A.fdssag='W680皭'
or A.fdssag='H841?'
or A.fdssag='T805骏<'
or A.fdssag='F701砄 '
or A.fdssag='T95綈1'
or A.fdssag='N612党'
or A.fdssag='O695緻'
or A.fdssag='D838禎'
or A.fdssag='H494纈?'
or A.fdssag='B642罇'
or A.fdssag='Q786?'
or A.fdssag='B646卵&'
or A.fdssag='K389簻P'
or A.fdssag='E297砵9'
or A.fdssag='J114渐*'
or A.fdssag='C981?7'
or A.fdssag='V560懊?'
or A.fdssag='W612?6'
or A.fdssag='T169罛')
and (or A.yrtre='@914?.'
or A.yrtre='T638篻 '
or A.yrtre='T476侈/'
or A.yrtre='Z935秔5'
or A.yrtre='V838呈'
or A.yrtre='K161颁R'
or A.yrtre='O557?'
or A.yrtre='K53礟5'
or A.yrtre='R290?7'
or A.yrtre='N740穧,'
or A.yrtre='H506紭U'
or A.yrtre='K308氛S'
or A.yrtre='S925江Y'
or A.yrtre='K514礼*'
or A.yrtre='K156紒'
or A.yrtre='P356聡A'
or A.yrtre='H281从'
or A.yrtre='C309紷 '
or A.yrtre='Z26渡H'
or A.yrtre='Q81粅 '
or A.yrtre='Y65箃'
or A.yrtre='R876历'
or A.yrtre='O732?'
or A.yrtre='F678菊'
or A.yrtre='T489井/'
or A.yrtre='U638盰#'
or A.yrtre='J554舰E'
or A.yrtre='V270奎C'
or A.yrtre='N270?2'
or A.yrtre='W204寡&'
or A.yrtre='U536掘9'
or A.yrtre='I702?M'
or A.yrtre='P616粏('
or A.yrtre='V884坎6') then '电信'
when (A.fdssag='T169罛 '
or A.fdssag='L562窸J'
or A.fdssag='Y435?'
or A.fdssag='K896?:'
or A.fdssag='D443?P'
or A.fdssag='G624?/'
or A.fdssag='I241翭V'
or A.fdssag='Q785穙/'
or A.fdssag='Y624僚N'
or A.fdssag='E88淋4'
or A.fdssag='B648緰S'
or A.fdssag='S231綛:'
or A.fdssag='W191帛@'
or A.fdssag='W106繣0'
or A.fdssag='L151?'
or A.fdssag='T558礣O'
or A.fdssag='W680皭'
or A.fdssag='H841?'
or A.fdssag='T805骏<'
or A.fdssag='F701砄 '
or A.fdssag='T95綈1'
or A.fdssag='N612党'
or A.fdssag='O695緻'
or A.fdssag='D838禎'
or A.fdssag='H494纈?'
or A.fdssag='B642罇'
or A.fdssag='Q786?'
or A.fdssag='B646卵&'
or A.fdssag='K389簻P'
or A.fdssag='E297砵9'
or A.fdssag='J114渐*'
or A.fdssag='C981?7'
or A.fdssag='V560懊?'
or A.fdssag='W612?6'
or A.fdssag='T169罛')
and (or or A.yrtre='Z912礩 '
or A.yrtre='E121馈G'
or A.yrtre='K827哥U'
or A.yrtre='V509祋!'
or A.yrtre='@694沧%'
or A.yrtre='N322炕U'
or A.yrtre='H585歌'
or A.yrtre='C108?M'
or A.yrtre='I750桂'
or A.yrtre='D141絜7'
or A.yrtre='L778辆@'
or A.yrtre='A428碮I'
or A.yrtre='W716?-'
or A.yrtre='M24基2'
or A.yrtre='F362?@'
or A.yrtre='Q120筫?'
or A.yrtre='U749箭P'
or A.yrtre='L808?A'
or A.yrtre='M311回 '
or A.yrtre='@939惯W'
or A.yrtre='J913'
or A.yrtre='U62翠='
or A.yrtre='O586箼-'
or A.yrtre='L468凋'
or A.yrtre='M627?'
or A.yrtre='Y348储R'
or A.yrtre='P902汲>'
or A.yrtre='H362矐'
or A.yrtre='T441僵*'
or A.yrtre='O440?'
or A.yrtre='D73?"'
"or A.yrtre='D148荷‘
or A.yrtre='A702?'
"or A.yrtre='T472?') then '联通’
else '移动' end as "运营商"
FROM jk01_YiWen_Question A

  • 写回答

1条回答 默认 最新

  • DarkAthena ORACLE应用及数据库设计方案咨询师 2022-03-03 23:41
    关注

    假设不改主体逻辑的话,可以把你这些or的条件改成in,这样代码会短不少。
    不过,这一堆参数看着实在太乱了,以后加类型还得改sql。
    所以,建议新建两个配置表,分别至少有两个字段,运营商和yrtre,运营商和fdssag,并且yrtre和fdssag建立唯一索引,之后就可以关联着查了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月16日
  • 已采纳回答 5月8日
  • 创建了问题 3月3日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题