@COLTEST

Utilice la función @COLTEST para activar los cálculos condicionales probando una o más condiciones de columna. Si se cumple una condición, @COLTEST devuelve TRUE. Para realizar el cálculo condicional, utilice la función @IF.

Sintaxis

@COLTEST (<source_column>, <test_condition> [, <test_condition>] [, ...])

<source_column>

Nombre de una columna de origen.

<test_condition>

Éstos son los valores válidos:

PRESENT

Indica que una columna está presente en el registro de origen y no en NULL. Pueden faltar valores de columna si la base de datos no registra valores para columnas que no cambian, pero que no son iguales a NULL.

NULL

Indica que hay una columna en el registro de origen y NULL.

MISSING

Indica que una columna no está presente en el registro de origen.

INVALID

Indica que una columna está presente en el registro de origen, pero contiene datos no válidos.

Ejemplos

Ejemplo 1

En el siguiente ejemplo, se utiliza @IF para asignar un valor a la columna HIGH_SALARY solo si la columna BASE_SALARY del registro de origen estaba presente (y no NULL) y era mayor que 250000. De lo contrario, se devuelve NULL.

HIGH_SALARY =
@IF (@COLTEST (BASE_SALARY, PRESENT) AND
BASE_SALARY > 250000,
BASE_SALARY, @COLSTAT (NULL))

Ejemplo 2

En el siguiente ejemplo, se devuelve 0 cuando falta la columna AMT o no es válida; de lo contrario, se devuelve un valor para AMT.

AMOUNT = @IF (@COLTEST (AMT, MISSING, INVALID), 0, AMT)

Ejemplo 3

El siguiente ejemplo asigna +nan y +snan a 0 en la pista para la columna col para todos los destinos, incluso si el valor especial está soportado.

TABLE src_table COLMAP(col = @if(@COLTEST(col, NAN, SNAN), 0, col))

Ejemplo 4

En el siguiente ejemplo, se asigna Infinity/-Infinity a 0 en la pista para la columna col para sustituir la asignación por defecto a un destino específico.

MAP src_table, TARGET tgt_table, COLMAP(col = @if(@COLTEST(col, INF, -INF), 0,
    col))