永发信息网

sql 查询性能问题 case when

答案:2  悬赏:80  手机版
解决时间 2021-04-04 20:39
1、 select *,a.a2,case when a.a2='1' then '是' when a.a2='2' then '也许是' when a.a2='3' then '不是' ) end maybe from a left join b on a.a1 = b.b1 where a.a2 = '1'

2、 select * from (select *,a.a2,case when a.a2='1' then '是' when a.a2='2' then '也许是' when a.a2='3' then '不是' ) end maybe from a left join b on a.a1 = b.b1) t where maybe = '是'

以上两个查询sql,查询的结果是一样的,请问在执行顺序上有什么不同?
第2比第1句快了几十倍。不知为什么
最佳答案
'不是'后面多了个“)”吧。2中不加条件join怎么还会比1中加条件where a.a2='1'的join快呢?
全部回答

--创建表 create table total (  brand varchar(50) not null,  quantity int null,  price int null ) --查询语句 select brand as 品牌, case when price < 500 then '500以下'   when price > 500 and price < 1000 then '500-1000'   when price > 1000 then '1000以上'   else null end as 级别, case when price < 500 then sum(quantity)   when price > 500 then sum(quantity)   when price > 1000 then sum(quantity)   else 0 end as 数量, avg(price) as 平均值 from total group by brand,price

最终结果如图所示

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
钢丝骨架复合管电溶器多少钱一台,
电信的wifi要怎么样才能被别人破不开
旅游开发是不是可以强制性的拆迁老百姓的房屋
句型转换(10分)【小题1】I don’t know how
郑州家纺批发市场在哪
爱的古诗词,古诗词在线翻译白话文
解:原式=?
G288次列车可以补延程票吗
上赛季NBA总决赛G7为啥最后詹姆斯准备扣 格林
The old man never feels with his pet dog a
中医药大学成人本科毕业,可以考中医助理医师
三国杀神司马懿台词,《三国演义》中能体现司
戚字开头的成语接龙
been 和 went 分别是什么时候用?
微型机的DOS系统属于那一类操作系统,简单解
推荐资讯
掌阅科技跌跌跌,为什么
梦见蛇成了两节,怎么也撵不出去
钥匙丢了,今天衣服丢了 是什么含义
天津快板猫和老鼠台词,快板台词竹板这么一打
1/2+1/4+1/8+1/16+1/32+1/64 这道题怎么巧算
下表是元素周期表中部分元素的原子结构示意图
OPPOa51想用无密码这该怎么办
初秋的荷花诗词,关于荷花的古诗
偶指自己是哪个地方的话
1954年12月27日阅读答案
梦幻西游无双版新角色什么时候出 会出新人物
如果男方爸妈不同意我们交往,我们还能继续吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?