[英]use Case in Where Clause SQL
嗨,做這個簡短。
當條件滿足時我只需要列。 如果條件不滿足,那么我可以繼續運行我的查詢而不將該列作為驗證。
需要的條件。
REFERENCE TABLE - TABLE_A
inside TABLE_A there is PARAMETER_NAME AND PARAMETER_VALUE
REQUIRED: PARAMETER_NAME= 'SMS_SEND'
PARAMETER_VALUE = 'TRUE'
用於驗證的欄目表_無效_STAT --->欄目
IF PARAMETER_NAME= 'SMS_SEND' and PARAMETER_VALUE = 'TRUE'
THEN I NEED TO CHECK INVALID_STAT IF ITS EQUAL TO 'Y'
ELSE
I DONT NEED TO VALIDATE INVALID_STAT AT ALL
WHERE (CASE
WHEN 1 = (SELECT DECODE (PARAMETER_VALUE, 'FALSE', 1, 2)
FROM TABLE_A
WHERE PARAMETER_NAME = 'SMS_SEND')
THEN
INVALID_STAT
ELSE
'Y'
END) = 'Y'
根據你的評論,這將得到你所要求的。
但是,我懷疑這是你需要的。 請按照上述評論的要求更新您的問題。 如果這確實回答了您的問題,請接受它作為答案並關閉問題。
我希望真正的要求是將外部聯接中的以下查詢包裝到更大的查詢(您尚未提供)以及合並以處理可能的無行方案。
select
case
when PARAMETER_VALUE = 'FALSE' THEN 'Y'
else ''
end as SMS_Send_Ind
from Table_A
where PARAMETER_Name = 'SMS_SEND'
;
如果表中沒有帶Parameter_name ='SMS_SEND'的記錄,則查詢將不返回任何行。 否則,它將是Y或空白,由Table_A中帶有parameter_name ='SMS_SEND'的記錄數決定
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.