case when是不是只要满足第一个别的就不进行执行了

本文详细解析了CASEWHEN条件语句的工作原理,强调其条件并行性及优先级特性,阐述了如何根据条件大小顺序进行数据筛选,确保在遇到符合条件时立即选取数据,避免重复判断。

CASE WHEN是列出几个并行的条件,
几个情况都是并列的,优先级从前往后;

所以如果你的情况条件从小到大,那么遇到前边的,虽然可能符合多个条件,但是优先级是前边的优于后边的。

所以遇到第一个符合的,就会取出这个条件需要的数据,而不会再往后判断。

帮忙整理下sql语句的格式“select ( case when req.inst_type = 4 then ( select prem.reg_prsn from stp.lcSAVC_PREM_PAY_AUDT prem where prem.jour_code = req.src_sys_no order by id desc limit 1) when req.inst_type = 2 or req.inst_type = 5 then ( select bene.reg_prsn from stp.lcSAVC_BENE_ASSN_AUDT bene where bene.jour_code = req.src_sys_no order by id desc limit 1) else '' end) initiator, req.proj_code projectCode, req.icbc_bnk_acc_no fromBankAcco, req.icbc_bnk_acc_name fromNameinBank, req.icbc_bnk_brch_name fromBankName, req.icbc_bnk_code fromBankno ( case when req.inst_type = 2 or req.inst_type = 5 then ( select bene.memo from stp.tsavc_bene_assn_plan bene where bene.jour_code = req.src_sys_no limit 1) else '' end) remark, req.file_path capitalFiles, ( case when req.inst_type = 4 then 'LOA13' when req.inst_type = 2 or req.inst_type = 5 then 'LOA04' else '' end) initiator, deal.id remitSerialno, req.oths_bnk_acc_name toNameinBank, req.oths_bnk_acc_no toBankAcco, req.oths_bnk_brch_name toBankName, req.oths_lvts_bnk_no toBankno, req.actl_amt balance, req.expe_pay_date expectdate, '156' moneytype, '1' issave, '1' isBatchCapital, deal.id busiRelaId, req.inst_type instType, from stp_cptl.TCPTL_INST_REQ_DEAL deal left join stp_cptl.TCPTL_INST_REQ req on deal.INST_REQ_ID = req.ID left join stp_project.TPRAP_TRUS_PROJ proj on proj.proj_code = req.proj_code left join stp_project.TPRAP_CSTD_ACC acc on acc.proj_code = req.proj_code and acc.acc_stat = '1' left join stp.TPRSN_INFO info on info.id = req.reg_prsn where deal.id = 139 limit 1;”
10-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值