DISTINCT 술어

DISTINCT 술어는 두 표현식을 비교하고 해당 값이 동일하지 않으면 TRUE로 평가됩니다.

DISTINCT 술어의 결과는 입력 표현식 중 하나 또는 둘 다 널(NULL)인지 여부에 따라 다릅니다.
입력 표현식 IS DISTINCT FROM IS NOT DISTINCT FROM
두 입력이 모두 널(NULL)이 아닙니다. 입력이 동일하지 않은 경우 TRUE로, 동일한 경우 FALSE로 평가됩니다. <> 연산자와 동등합니다. 입력이 동일하지 않은 경우 FALSE로, 동일한 경우 TRUE로 평가됩니다. = 연산자와 동등합니다.
하나의 입력이 널(NULL)입니다. TRUE로 평가됩니다. FALSE로 평가됩니다.
두 입력이 모두 널(NULL)입니다. FALSE로 평가됩니다. TRUE로 평가됩니다.
DISTINCT 술어의 결과는 널(NULL)이 될 수 없습니다.
구문 도표 읽기시각적 구문 도표 생략
>>-expression1--IS--+-----+--DISTINCT--FROM--expression2-------><
                    '-NOT-'                                

expression1expression2
비교할 표현식입니다.

HV가 호스트 변수이고 T1이 하나의 컬럼(C1)과 세 개의 행이 있는 테이블이라고 가정하십시오.
C1
----
1
2
NULL
  • HV=2인 경우 명령문이 다음과 같습니다.
    SELECT * FROM T1 WHERE C1 IS DISTINCT FROM :HV;
    이 명령문은 행 1과 3을 리턴합니다.
    HV=2인 경우 명령문이 다음과 같습니다.
    SELECT * FROM T1 WHERE C1 IS NOT DISTINCT FROM :HV;
    이 명령문은 행 2를 리턴합니다.
  • HV=NULL인 경우 명령문이 다음과 같습니다.
    SELECT * FROM T1 WHERE C1 IS DISTINCT FROM :HV;
    이 명령문은 행 1과 2를 리턴합니다.
    HV=NULL인 경우 명령문이 다음과 같습니다.
    SELECT * FROM T1 WHERE C1 IS NOT DISTINCT FROM :HV;
    이 명령문은 행 3을 리턴합니다.