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