@COLTEST

Use a função @COLTEST para ativar cálculos condicionais testando uma ou mais condições de coluna. Se uma condição for atendida, @COLTEST retornará TRUE. Para executar o cálculo condicional, use a função @IF.

Sintaxe

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

<source_column>

O nome de uma coluna de origem.

<test_condition>

Valores válidos:

PRESENT

Indica que uma coluna está presente no registro de origem e não no NULL. Os valores de coluna poderão estar ausentes se o banco de dados não registrar valores para colunas que não sejam alteradas, mas que não sejam iguais a NULL.

NULL

Indica que uma coluna está presente no registro de origem e NULL.

MISSING

Indica que uma coluna não está presente no registro de origem.

INVALID

Indica que uma coluna está presente no registro de origem, mas contém dados inválidos.

Exemplos

Exemplo 1

O exemplo a seguir usa @IF para mapear um valor para a coluna HIGH_SALARY somente se a coluna BASE_SALARY no registro de origem estava presente (e não NULL) e maior que 250000. Caso contrário, NULL será retornado.

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

Exemplo 2

No exemplo a seguir, 0 é retornado quando a coluna AMT está ausente ou é inválida; caso contrário, um valor para AMT é retornado.

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

Exemplo 3

O exemplo a seguir mapeia +nan e +snan para 0 na trilha da coluna col para todos os destinos, mesmo que o valor especial seja suportado.

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

Exemplo 4

O exemplo a seguir mapeia Infinity/-Infinity para 0 na trilha da coluna col para substituir o mapeamento padrão para um destino específico.

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