0

我有这样的Case-When条款;

(CASE WHEN A.YAZ_ADRES IS NULL
         THEN (B.IS_ADRES1 +' '+B.IS_ADRES2) 
         ELSE A.YAZ_ADRES END) 

我想在之后使用条件THEN

例如;

(CASE WHEN A.YAZ_ADRES IS NULL
         THEN (IF B.TUZ = 'T' THEN (B.IS_ADRES1 +' '+B.IS_ADRES2) ELSE ((B.EV_ADRES1 +' '+B.EV_ADRES2)))
         ELSE A.YAZ_ADRES END) 

如何在中使用嵌套条件Case-When

4

4 回答 4

4

您可以使用CASE WHEN ... THEN ... (WHEN ... THEN ...)+ ELSE ... END. 它返回第一个匹配条件的THEN表达式:WHEN

CASE WHEN A.YAZ_ADRES IS NULL AND B.TUZ = 'T'
       THEN B.IS_ADRES1 +' '+B.IS_ADRES2
     WHEN A.YAZ_ADRES IS NULL 
       THEN B.EV_ADRES1 +' '+B.EV_ADRES2
     ELSE A.YAZ_ADRES
END
于 2011-09-05T07:59:08.093 回答
3

嵌套另一个CASE而不是IF

于 2011-09-05T07:48:44.880 回答
2

您可以像这样嵌套CASE子句:

(CASE WHEN A.YAZ_ADRES IS NULL
  THEN
    (CASE WHEN B.TUZ = 'T'
      THEN (B.IS_ADRES1 +' '+B.IS_ADRES2)
      ELSE ((B.EV_ADRES1 +' '+B.EV_ADRES2))
    END)
  ELSE A.YAZ_ADRES
END)
于 2011-09-05T07:52:22.203 回答
1
(CASE WHEN A.YAZ_ADRES IS NULL          
  THEN (CASE WHEN B.TUZ = 'T' THEN (B.IS_ADRES1 +' '+B.IS_ADRES2) ELSE ((B.EV_ADRES1 +' '+B.EV_ADRES2)) END)          
ELSE A.YAZ_ADRES END)  
于 2011-09-05T07:51:36.877 回答