SQL 中 where 条件中 in 后面 加 CASE WHEN 语句 报错

2024-12-01 17:54:21
推荐回答(4个)
回答(1):

.....老大看清楚你用的有问题,=是赋值不是判断==才是判断,'1' = '1'把一个字符串赋值给另一个字符串没有意义,而且似乎也不符合语法啊,这种错误似乎很低级,我这里没有现成的调试工具,你改了这个错误看看,如果还有把错误贴一下
CASE WHEN 语句 报错 可能就是因为你给了一个错误的判断条件,他的结果也不是一个布尔值啊

回答(2):

case语句只能代表一个值,如果你的select brno from poozfmessagebrno where upbrno = '56601'语句中返回多个值的话就会报错喽

回答(3):

and opn_br_no in
(case when '1' = '1' then
(select brno from poozfmessagebrno where upbrno = '56601') else
'50000' end)

修改为:

and opn_br_no in
( select
case when '1' = '1' then brno else '50000' end
from
poozfmessagebrno
where upbrno = '56601'
)

回答(4):

先将select brno from poozfmessagebrno where upbrno = '56601'结果赋值给一个变量再去试一下语句