簡體   English   中英

Oracle SQL CASE語句檢查多個條件

[英]Oracle SQL CASE statement checking multiple conditions

我正在使用Oracle SQL並嘗試實現以下邏輯:在PS_EMPLOYEES上,如果ADDRESS3不為null且不等於'',則用ADDRESS2填充此字段,否則,用ADDRESS1填充此字段。

我可以使以下部分正常工作,但是如何確保它也不為null?

, ADDRESS_LINE1 = 
    SELECT (CASE WHEN t2.ADDRESS3 != ' ' THEN substr(t2.ADDRESS2, 1, 30) ELSE substr(t2.ADDRESS1, 1, 30) END)
    FROM PS_EMPLOYEES t2
    WHERE t2.EMPLID = PS_Z_EXS_EMP_TBL_T.EMPLID

您可以使用ANDORCASE語句中組合任意條件

(CASE WHEN t2.address3 IS NOT NULL AND
           t2.address3 != ' '
      THEN substr( t2.address2, 1, 30 )
      ELSE substr( t2.address1, 1, 30 )
  END)

我認為您應該可以在case子句中使用or語句

SELECT (CASE WHEN t2.ADDRESS3 != ' ' or t2.ADDRESS3 is null THEN substr(t2.ADDRESS2, 1, 30) ELSE substr(t2.ADDRESS1, 1, 30) END)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM