[英]SQL Exist in either TableA or TableB
我正在嘗試創建一個腳本,該腳本需要一個子句來檢查表 3 中的列值是否存在於表 1 或表 2 中
SELECT *
FROM [ZERO_BALANCE].[DBO].[dat_acct_codes_REJECTIONS] ACR
WHERE [REJECTIONREASON] = 'MISSING LINKING ACCOUNT'
AND
EXISTS
(SELECT 1 FROM ref_PX WHERE CAST(PX AS VARCHAR(MAX)) = CAST(ACR.[Code] AS VARCHAR(MAX))
OR
(SELECT 1 FROM ref_DX WHERE CAST(DX AS VARCHAR(MAX)) = CAST(ACR.[Code] AS VARCHAR(MAX)))
消息 4145,級別 15,State 1,第 44 行 在預期條件的上下文中指定的非布爾類型表達式,靠近“)”。
您的查詢存在問題:
CAST()
function 上缺少括號(由Dale Burrell評論)
您需要為每個條件重復EXISTS
關鍵字
注意運算符優先級: OR
的優先級低於AND
,因此,據我了解您的查詢,您的OR
ed 條件應該用括號括起來。
正確的格式有助於發現這種東西。
SELECT *
FROM [ZERO_BALANCE].[DBO].[dat_acct_codes_REJECTIONS] ACR
WHERE
[REJECTIONREASON] = 'MISSING LINKING ACCOUNT'
AND (
EXISTS (
SELECT 1
FROM ref_PX
WHERE CAST(PX AS VARCHAR(MAX)) = CAST(ACR.[Code] AS VARCHAR(MAX))
)
OR EXISTS (
SELECT 1
FROM ref_DX
WHERE CAST(DX AS VARCHAR(MAX)) = CAST(ACR.[Code] AS VARCHAR(MAX))
)
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.