티스토리 뷰

PrestoSQL을 포함한 대부분의 SQL 데이터베이스 시스템에서 NULL은 "알 수 없는 값"을 나타냅니다. 따라서 NULL과의 비교는 일반적인 비교 연산자(=, !=, <> 등)를 사용할 때 항상 알 수 없는 결과(NULL)를 반환합니다. 즉, NULL 값은 NULL이 아닌 어떤 값과도 '동등하지 않다'고 할 수 없으며, '동등하다'고도 할 수 없습니다.

예를 들어, p.memo 컬럼의 값이 NULL일 때 다음 조건을 사용하면:

p.memo != 'ForTest'

이 조건은 FALSETRUE도 아닌 NULL을 반환하게 됩니다. SQL에서 NULL은 조건문에서 FALSE와 동일하게 취급되므로, 이 조건을 만족하는 행은 결과에 포함되지 않습니다.

따라서 p.memoNULL인 경우를 포함하려면 NULL 값에 대한 명시적인 검사가 필요합니다. 예를 들어:

(p.memo IS NULL OR p.memo != 'ForTest')

이렇게 하면 p.memo 컬럼이 NULL이거나 'ForTest'와 다른 값을 가진 행을 모두 선택할 수 있습니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함