@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))