SQL case when 语句问题

zhangzhen116 zhangzhen116 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

(CASE WHEN exists(SELECT top 1 B.TAXUP
FROM ANT B LEFT JOIN ANTUDF A ON (B.PANNO=A.PANNO and B.ITEMNO=A.ITEMNO)
WHERE B.CODE=RESVT.CODE AND A.WO like @gd AND B.TAXUP > 0 )
THEN
(SELECT top 1 B.TAXUP
FROM ANT B LEFT JOIN ANTUDF A ON (B.PANNO=A.PANNO and B.ITEMNO=A.ITEMNO)
WHERE B.CODE=RESVT.CODE AND B.TAXUP > 0 )
WHEN exists(
SELECT TOP 1 B.TAXUP
FROM ANT B LEFT JOIN ANTUDF A ON (B.PANNO=A.PANNO and B.ITEMNO=A.ITEMNO)
WHERE B.CODE=RESVT.CODE AND B.TAXUP > 0 order by B.[DATETIME] desc )
THEN
(SELECT TOP 1 B.TAXUP
FROM ANT B LEFT JOIN ANTUDF A ON (B.PANNO=A.PANNO and B.ITEMNO=A.ITEMNO)
WHERE B.CODE=RESVT.CODE AND B.TAXUP > 0 order by B.[DATETIME] DESC)
ELSE
(select TOP 1 TAXUP from VQUT WHERE VQUT.CODE=RESVT.CODE order by DATETIME DESC)
END)

他的执行方式是从上往下执行,如果第一条语句没有结果再执行下一条语句。是这样的嘛?
为什么我这里他执行结果不对。
第一条语句单独执行有结果。那它应该就不会再往下执行了。 但是当我把CASE 让到一条SQL中去执行时它得到的结果跟我单独执行结果不同呢?
...全文
评论 20
收藏 已收藏
分享
返回顶部
zhangzhen116
疑难问题 22,298 成员 121,727 内容