2013-05-03 65 views
0

如果事情已經出現,但是我找不到它,請事先道歉。SQL案例當聲明檢查字段是否在臨時表中時

我已經聲明瞭一個包含ID列表的臨時表@x

在我的主查詢我要檢查,如果一個特定的記錄ID出現在@x表,然後分別返回'Yes''No'

我嘗試以下情況時聲明:

select (case when xsup_ID in @x then 'YES' else 'NO' end) as Ins 

但在運行它時,我得到錯誤:

在指定的上下文非布爾類型的表達式,其中一個 條件預計

附近有語法錯誤@x「

是有可能使用上面的語句,如果沒有,這將是如何解決它的最好方法?

回答

0
select (case when xsup_ID in (select id from @x) then 'YES' else 'NO' end) as Ins 

即你的應該測試對一列的子查詢,而不是表變量本身。

+0

謝謝。我看到我出錯的地方。 – Laima 2013-05-03 11:41:27

0
select (case when CHARINDEX(xsup_ID ,@x) > 0 then 'YES' else 'NO' end)