- 카테고리:
EQUAL_NULL¶
두 식이 같은지 비교합니다. 이 함수는 NULL에 대해 안전합니다. 즉, NULL을 같음을 비교하기 위해 알려진 값으로 취급합니다. 이는 EQUAL 비교 연산자 (=
)와는 다릅니다. 해당 연산자는 NULL을 알 수 없는 값으로 처리합니다.
- 참고 항목:
구문¶
EQUAL_NULL( <expr1> , <expr2> )
사용법 노트¶
반환되는 값은 입력이 NULL 값인지 여부에 따라 다릅니다.
- TRUE 반환:
EQUAL_NULL( <null> , <null> )
- FALSE 반환:
EQUAL_NULL( <null> , <null_아님> )
EQUAL_NULL( <null_아님> , <null> )
그렇지 않은 경우:
EQUAL_NULL(<식1>, <식2>)
는<식1> = <식2>
와 동일합니다.
자세한 내용은 아래의 예를 참조하십시오.
데이터 정렬 세부 정보¶
The collation specifications of all input arguments must be compatible.
The comparisons follow the collation based on the input arguments’ collations and precedences.
예¶
간단한 데이터로 테이블을 만듭니다.
CREATE OR REPLACE TABLE x (i number); INSERT INTO x values (1), (2), (null);
필터 없이 테이블 자체를 조인하여 생성된 데카르트 곱을 표시합니다.
SELECT x1.i x1_i, x2.i x2_i FROM x x1, x x2 ORDER BY x1.i, x2.i; +------+------+ | X1_I | X2_I | |------+------| | 1 | 1 | | 1 | 2 | | 1 | NULL | | 2 | 1 | | 2 | 2 | | 2 | NULL | | NULL | 1 | | NULL | 2 | | NULL | NULL | +------+------+
두 열에 대해 동일한 값만 포함하는 행을 반환합니다.
SELECT x1.i x1_i, x2.i x2_i FROM x x1, x x2 WHERE x1.i=x2.i; +------+------+ | X1_I | X2_I | |------+------| | 1 | 1 | | 2 | 2 | +------+------+
두 열에 대해 동일한 값 또는 NULL 값만 포함하는 행을 반환합니다.
SELECT x1.i x1_i, x2.i x2_i FROM x x1, x x2 WHERE EQUAL_NULL(x1.i,x2.i); +------+------+ | X1_I | X2_I | |------+------| | 1 | 1 | | 2 | 2 | | NULL | NULL | +------+------+
EQUAL (=
) 및 NOT EQUAL (<>
)에 대해 가능한 모든 결과를 보여줍니다.
SELECT x1.i x1_i, x2.i x2_i, x1.i=x2.i, iff(x1.i=x2.i, 'Selected', 'Not') "SELECT IF X1.I=X2.I", x1.i<>x2.i, iff(not(x1.i=x2.i), 'Selected', 'Not') "SELECT IF X1.I<>X2.I" FROM x x1, x x2; +------+------+-----------+---------------------+------------+----------------------+ | X1_I | X2_I | X1.I=X2.I | SELECT IF X1.I=X2.I | X1.I<>X2.I | SELECT IF X1.I<>X2.I | |------+------+-----------+---------------------+------------+----------------------| | 1 | 1 | True | Selected | False | Not | | 1 | 2 | False | Not | True | Selected | | 1 | NULL | NULL | Not | NULL | Not | | 2 | 1 | False | Not | True | Selected | | 2 | 2 | True | Selected | False | Not | | 2 | NULL | NULL | Not | NULL | Not | | NULL | 1 | NULL | Not | NULL | Not | | NULL | 2 | NULL | Not | NULL | Not | | NULL | NULL | NULL | Not | NULL | Not | +------+------+-----------+---------------------+------------+----------------------+
EQUAL_NULL 및 NOT(EQUAL_NULL)에 대해 가능한 모든 결과를 보여줍니다.
SELECT x1.i x1_i, x2.i x2_i, equal_null(x1.i,x2.i), iff(equal_null(x1.i,x2.i), 'Selected', 'Not') "SELECT IF EQUAL_NULL(X1.I,X2.I)", not(equal_null(x1.i,x2.i)), iff(not(equal_null(x1.i,x2.i)), 'Selected', 'Not') "SELECT IF NOT(EQUAL_NULL(X1.I,X2.I))" FROM x x1, x x2; +------+------+-----------------------+---------------------------------+----------------------------+--------------------------------------+ | X1_I | X2_I | EQUAL_NULL(X1.I,X2.I) | SELECT IF EQUAL_NULL(X1.I,X2.I) | NOT(EQUAL_NULL(X1.I,X2.I)) | SELECT IF NOT(EQUAL_NULL(X1.I,X2.I)) | |------+------+-----------------------+---------------------------------+----------------------------+--------------------------------------| | 1 | 1 | True | Selected | False | Not | | 1 | 2 | False | Not | True | Selected | | 1 | NULL | False | Not | True | Selected | | 2 | 1 | False | Not | True | Selected | | 2 | 2 | True | Selected | False | Not | | 2 | NULL | False | Not | True | Selected | | NULL | 1 | False | Not | True | Selected | | NULL | 2 | False | Not | True | Selected | | NULL | NULL | True | Selected | False | Not | +------+------+-----------------------+---------------------------------+----------------------------+--------------------------------------+