@COLTEST

@COLTEST 함수를 사용하여 하나 이상의 열 조건을 테스트하여 조건부 계산을 사용으로 설정합니다. 조건이 충족되면 @COLTEST는 TRUE를 반환합니다. 조건부 계산을 수행하려면 @IF 함수를 사용합니다.

구문

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

<source_column>

소스 열의 이름입니다.

<test_condition>

적합한 값은 다음과 같습니다.

PRESENT

열이 NULL가 아닌 출처 레코드에 있음을 나타냅니다. 데이터베이스가 변경되지 않지만 NULL와 동일하지 않은 열에 대한 값을 기록하지 않는 경우 열 값이 누락될 수 있습니다.

NULL

열이 출처 레코드 및 NULL에 있음을 나타냅니다.

MISSING

열이 출처 레코드에 없음을 나타냅니다.

INVALID

열이 출처 레코드에 있지만 부적합한 데이터를 포함함을 나타냅니다.

예제

예 1

The following example uses @IF to map a value to the HIGH_SALARY column only if the BASE_SALARY column in the source record was both present (and not NULL) and greater than 250000. 그렇지 않은 경우 NULL가 반환됩니다.

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

예 2

다음 예에서 0은 AMT 열이 누락되거나 부적합할 때 반환되고, 그렇지 않을 경우 AMT에 대한 값이 반환됩니다.

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

예 3

다음 예에서는 특수 값이 지원되는 경우에도 모든 대상의 col 열에 대한 추적에서 +nan 및 +snan를 0으로 매핑합니다.

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

예 4

다음 예에서는 col 열에 대한 추적에서 Infinity/-Infinity을 0으로 매핑하여 특정 대상에 대한 기본 매핑을 무효화합니다.

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