怎样解决“使用case...when...导致的性能低下”的问题呢?

ypopo1234 ypopo1234 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
以下语句执行下来需要2.3秒,相当的慢,主要在于使用了三个case when,去掉这三个case ,执行速度还是没问题,怎么修改
三个case...when...,使之能达到同样的效果呢,谢谢你们。

select case when t.je1 is null then
(select sum(t1.TOTAL_PRICE)
from FWLR_YJ t1
where t1.HTL_DD_ID = t.id
and t1.type = '吃饭')
else
(select sum(t2.TOTAL_PRICE)
from FWLR_SJ t2
where t2.HTL_DD_ID = t.id
and t2.type = '吃饭')
end as cyFeeSum,
case
when t.je1 is null then
(select sum(t1.TOTAL_PRICE)
from FWLR_YJ t1
where t1.HTL_DD_ID = t.id
and t1.type = '睡觉')
else
(select sum(t2.TOTAL_PRICE)
from FWLR_SJ t2
where t2.HTL_DD_ID = t.id
and t2.type = '睡觉')
end as zsFeeSum
from gp_dd t, jg d
where t.org_id = d.jcdm
order by orgName, supplierName, startTime desc
...全文

相关推荐

MySQL中使用case when 语句实现多条件查询的方法

举例如下: 数据表为DemoTable,字段有id, condition1,condition2,condition3,condition4,condition5 要求是查询DemoTable中,condition1,condition2,condition3,condition4,condition5五个字段中符合任意两个或两个以上的条件的内容。 可使用case when来实现这个条件,需要嵌套子查询语句 sql语句代码示例如下: 代码如下: SELECT * FROM DemoTable WHERE ((SELECT CASE 1 WHEN condition1满足条件 THEN 1 E

weixin_38634065

oracle where case when where后面跟case when

NULL 博文链接:https://vernonchen163.iteye.com/blog/1908053

weixin_38669628

MySQL 的CASE WHEN 语句使用说明

mysql数据库中CASE WHEN语句。 case when语句,用于计算条件列表并返回多个可能结果表达式之一。 CASE 具有两种格式: 简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果。 CASE 搜索函数计算一组布尔表达式以确定结果。 两种格式都支持可选的 ELSE 参数。 语法简单 CASE 函数: 代码如下:CASE input_expression    WHEN when_expression THEN result_expression        [ …n ]    [         ELSE else_result_expression    END

付出余切

MySQL的CASE WHEN语句的几个使用实例

主要介绍了MySQL的CASE WHEN语句的几个使用实例,需要的朋友可以参考下

weixin_38655990

详细解析 mysql 中的 case when 语句的使用

详细分析 mysql 中的 控制流程语句 if 以及 case when 的使用, 里面 的 sql 语句,已经在 本机上亲自实践,

高利
评论 10
收藏 已收藏
分享
返回顶部
ypopo1234
Oracle 17,133 成员 55,258 内容