@COLTEST
Utilizzare la funzione @COLTEST per abilitare i calcoli condizionali mediante il test di una o più condizioni di colonna. Se una condizione viene soddisfatta, @COLTEST restituisce TRUE. Per eseguire il calcolo condizionale, utilizzare la funzione @IF.
Sintassi
@COLTEST (<source_column>, <test_condition> [, <test_condition>] [, ...])
<source_column>
Nome di una colonna di origine.
<test_condition>
Valori validi:
PRESENT
Indica che nel record di origine è presente una colonna e non NULL. I valori di colonna possono mancare se il database non registra i valori per le colonne che non vengono modificate, ma che non corrispondono a NULL.
NULL
Indica che nel record di origine è presente una colonna e NULL.
MISSING
Indica che non è presente una colonna nel record di origine.
INVALID
Indica che una colonna è presente nel record di origine ma contiene dati non validi.
Esempi
Esempio 1
Nell'esempio seguente viene utilizzato @IF per mappare un valore alla colonna HIGH_SALARY solo se la colonna BASE_SALARY nel record di origine era presente (e non NULL) e maggiore di 250000. In caso contrario, viene restituito NULL.
HIGH_SALARY =
@IF (@COLTEST (BASE_SALARY, PRESENT) AND
BASE_SALARY > 250000,
BASE_SALARY, @COLSTAT (NULL))
Esempio 2
Nell'esempio seguente viene restituito 0 quando la colonna AMT risulta mancante o non valida; in caso contrario viene restituito un valore per AMT.
AMOUNT = @IF (@COLTEST (AMT, MISSING, INVALID), 0, AMT)
Esempio 3
L'esempio seguente mappa +nan e +snan a 0 nella colonna trail per col per tutte le destinazioni anche se il valore speciale è supportato.
TABLE src_table COLMAP(col = @if(@COLTEST(col, NAN, SNAN), 0, col))
Esempio 4
Nell'esempio seguente viene mappato Infinity/-Infinity a 0 nella colonna trail per col per sostituire il mapping predefinito a una destinazione specifica.
MAP src_table, TARGET tgt_table, COLMAP(col = @if(@COLTEST(col, INF, -INF), 0,
col))