DISTINCT 술어

DISTINCT 술어는 두 표현식을 비교하고 이들의 값이 동일하지 않은 경우 TRUE로 평가합니다.

DISTINCT 술어의 결과는 입력 표현식 중 하나가 널(NULL)인지, 또는 둘 다 널(NULL)인지에 따라 달라집니다.
입력 표현식 IS DISTINCT FROM IS NOT DISTINCT FROM
두 입력 모두 널(NULL)이 아닙니다. 두 입력이 동일하지 않은 경우 TRUE로 평가하며 동일한 경우에는 FALSE로 평가합니다. <> 연산자와 동등합니다. 두 입력이 동일하지 않은 경우 FALSE로 평가하며 동일한 경우에는 TRUE로 평가합니다. = 연산자와 동등합니다.
한 입력이 널(NULL)입니다. TRUE로 평가합니다. FALSE로 평가합니다.
두 입력 모두 널(NULL)입니다. FALSE로 평가합니다. TRUE로 평가합니다.
DISTINCT 술어의 결과는 널(NULL)일 수 없습니다.
Read syntax diagramSkip visual syntax diagram expression1 IS NOT DISTINCT FROM expression2
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을 리턴합니다.