@COLTEST

Utilisez la fonction @COLTEST pour activer les calculs conditionnels en testant des conditions de colonne. Si une condition est remplie, @COLTEST renvoie TRUE. Pour effectuer le calcul conditionnel, utilisez la fonction @IF.

Syntaxe

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

<source_column>

Nom d'une colonne source.

<test_condition>

Valeurs valides :

PRESENT

Indique qu'une colonne est présente dans l'enregistrement source et non NULL. Des valeurs de colonne peuvent être manquantes si la base de données ne consigne pas de valeurs pour les colonnes qui ne changent pas, mais qui ne sont pas identiques à NULL.

NULL

Indique qu'une colonne est présente dans l'enregistrement source et NULL.

MISSING

Indique qu'aucune colonne n'est présente dans l'enregistrement source.

INVALID

Indique qu'une colonne est présente dans l'enregistrement source mais contient des données non valides.

Exemples

Exemple 1

L'exemple suivant utilise @IF pour mettre en correspondance une valeur avec la colonne HIGH_SALARY uniquement si la colonne BASE_SALARY de l'enregistrement source était présente (et non NULL) et supérieure à 250000. Sinon, NULL est renvoyé.

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

Exemple 2

Dans l'exemple suivant, 0 est renvoyé lorsque la colonne AMT est manquante ou non valide. Sinon, une valeur pour AMT est renvoyée.

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

Exemple 3

L'exemple suivant met en correspondance +nan et +snan avec 0 dans la trace de la colonne col pour toutes les cibles, même si la valeur spéciale est prise en charge.

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

Exemple 4

L'exemple suivant met en correspondance Infinity/-Infinity avec 0 dans la trace pour la colonne col afin de remplacer la mise en correspondance par défaut avec une cible spécifique.

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