2023年11月30日 星期四

SQL語法 CASE 的用法 - CASE .. WHEN .. THEN .. END 的用法 - SUBSTR

 目的: SQL 語法 - CASE 的用法

處理說明:  1>SELECT 
           CASE compare_value
             WHEN condition1 THEN result1
             WHEN condition2 THEN result2
             WHEN conditionN THEN resultN
             ELSE result
             END;
                   2>SUBSTR (str, pos, len) : pos 由 1 開始
                   3>LENGTH(AUFNR) : 欄位值的長度




SQL:
1>CASE    WHEN    THEN    ELSE  END
SELECT  AUFNR,MATNR,BUDAT
FROM    SAPR3.AUFM@SAP
WHERE   MANDT='999'
AND     WERKS IN ('5100','7100')
AND     AUFNR IN (SELECT   CASE 
                                                WHEN (SUBSTR(SAPNO,1,1)='F')  OR (SUBSTR(SAPNO,1,1)='V')  THEN  SAPNO
                                                ELSE    LPAD(SAPNO,12,'0')
                                                END     as SAPNO_
                  FROM     AMM_SRO 
                  WHERE    SAPNO IN ('FA210121','V47246049','20006541')
                  )
ORDER  BY AUFNR;

2> SUBSTR(str,pos,len)  :   pos  以 1 開始



SQL1 用法:
     SELECT   AUFNR,MATNR,BUDAT
     FROM      SAPR3.AUFM@SAP
     WHERE   MANDT='999'
      AND        WERKS IN ('5100','7100')
      AND        AUFNR IN (SELECT CASE     SUBSTR(SAPNO,1,1)
                                                           WHEN  'F'  THEN  SAPNO
                                                           ELSE    LPAD(SAPNO,12,'0')
                                                        END as SAPNO_

                                          FROM AMM_SRO
                                          WHERE SAPNO IN ('FA210121','13194980','20006541')
                                          )
     ORDER  BY AUFNR;

SQL2 用法:
     SELECT  AUFNR,MATNR,BUDAT
      FROM    SAPR3.AUFM@SAP
      WHERE   MANDT='999'
       AND     WERKS IN ('5100','7100')
AND     AUFNR IN (SELECT   CASE 
                           WHEN (SUBSTR(SAPNO,1,1)='F')  OR (SUBSTR(SAPNO,1,1)='V') THEN  SAPNO
                           ELSE LPAD(SAPNO,12,'0')
                           END   as SAPNO_
                  FROM     AMM_SRO 
                  WHERE    SAPNO IN ('FA210121','V47246049','20006541')
                  )
ORDER  BY AUFNR;
 


 

沒有留言:

張貼留言