8

Qualcuno potrebbe aiutarmi con la scrittura di istruzioni case in Informatica PowerCenter Designer? Sono abbastanza nuovo per Informatica e, in base alla mia esperienza limitata, ritengo che le dichiarazioni del caso non siano supportate. C'è una funzione di decodifica con funzionalità simili, ma non riesco a trovare alcun buon esempio sulla sintassi.Istruzioni caso/funzione decodifica in Informatica

Sarei davvero grato se qualcuno potesse fornirmi alcuni esempi specifici su come utilizzare la funzione case decode/decode in Informatica.

Grazie mille per il vostro aiuto!

risposta

15

Hai ragione - non c'è CASE affermazione, ma è possibile utilizzare DECODE per simulare:

DECODE(TRUE 
     , DECIMAL_PORT > 0, 'positive value' 
     , DECIMAL_PORT < 0, 'negative value' 
         , 'zero') 

Si tratta di un equivalente del seguente Transact-SQL CASE dichiarazione:

CASE 
    WHEN DECIMAL_PORT > 0 THEN 'positive value' 
    WHEN DECIMAL_PORT < 0 THEN 'negative value' 
    ELSE 'zero' 
END 

Ecco come funziona:

  • il 1 ° parametro è un hardcodice d TRUE valore,
  • anche parametri (2 °, 4 ° e così via) sono le condizioni,
  • parametri dispari (3 °, 5 ° e così via) sono valori il ritorno ,
  • l'ultimo parametro è il valore di ritorno predefinito ,
  • la prima condizione che valuta il valore del primo parametro (es. la prima condizione è vera) determina il valore restituito,
  • se non viene soddisfatta nessuna delle condizioni, viene restituito l'ultimo parametro.
3

Guardate anche la funzione IIF(), che viene spesso utilizzato per implementare la logica condizionale:

IIF(DECIMAL_PORT > 0, 'positive value', IIF(DECIMAL_PORT < 0 ,'negative value', 'zero')) 
+2

Questo funzionerà, ma sarà anche un casino rapidamente come il numero di condizioni cresce. 'DECODE' consente di scrivere espressioni più leggibili. –