TSQL CASE 裡有 IF EXISTS 出現錯誤

arthas989 2010-12-28 01:08:11
外圈SELECT出的欄位id 要當成 case裡的一個條件
真正要找的欄位 是 case裡再經過 if exists 檢查是不是有值後
再下一段SQL撈出的欄位值 中間 select '1' = '1' 就是在作這個 只是測試用先簡化了
IF EXISTS 這段單獨執行沒問題
但是放進CASE裡就會出現錯誤
請問有前輩能指導錯誤原因嗎?謝謝


SELECT
CASE id
WHEN '0'
THEN
'1'
ELSE
'3'
END
AS AID
FROM rsi
WHERE rid='7174'


以上可正確執行
以下也可正確執行


IF EXISTS (select '1' = '1')
select '1'
ELSE
select '0'


但這樣就會有錯


SELECT
CASE id
WHEN '0'
THEN
(
IF EXISTS (select '1' = '1')
select '1'
ELSE
select '0'
)
ELSE
'3'
END
AS AID
FROM rsi
WHERE rid='7174'
...全文
62 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
arthas989 2010-12-28
  • 打赏
  • 举报
回复
原來是找錯了方向,謝謝回答!!
Mr_Nice 2010-12-28
  • 打赏
  • 举报
回复
Then 后必须是有效的表达式
billpu 2010-12-28
  • 打赏
  • 举报
回复
case then 后面只能跟表达式
王向飞 2010-12-28
  • 打赏
  • 举报
回复
最好给出测试数据和你希望得到的结果。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧