注册

sql中的子查询case/when执行时机

~ 2023/05/11 1411 4 已解决

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:linux
【CPU】:64
【问题描述】*:
select
(
select
case when b.name = 'cde' then
fun_get(b.name)
else
b.name
end value
from testb b
where b.id = a.id
and b.name ='abc'
) name
from testa a。
类似这个sql,在执行的时候,报了fun_get里面的错误。按理说,不应该执行到函数里面啊。
而且将sql 改写成
select
(
select
decode( b.name , 'cde' ,fun_get(b.name), b.name) value
from testb b
where b.id = a.id
and b.name ='abc'
) name

from testa a。
改写成这个之后就不会报fun_get的错误了

回答 0
暂无回答
扫一扫
联系客服