당신은 AND
를 사용해야합니다. NULL
인 경우 <> ''
수표의 경우 항상 true이고 그 반대의 경우도 마찬가지입니다.
는 방식으로 간단하게 예를 들어, 당신은 (당신이 좋아하는 psql
또는 어떤 SQL 쿼리 도구에서) 이런 종류의 물건을 디버깅 할 수 있도록 테이블없이 선택 문을 사용할 수 있습니다
select ('' is not null or '' <> '') as empty_result,
(null is not null or null <> '') as null_result;
empty_result | null_result
--------------+-------------
t |
을 문자열이 ''
경우, 당신은 true
이됩니다. 문자열이 null
인 경우 null
이 표시됩니다 (null
과의 비교는 SQL oddies - select null = null;
결과가 null
). 우리가 and
으로 or
를 교체 할 때의이 어떻게되는지 보자
select ('' is not null and '' <> '') as empty_result,
(null is not null and null <> '') as null_result;
empty_result | null_result
--------------+-------------
f | f
깔끔한! X is not null and X <> ''
의 경우 이 ''
또는 null
일 때 false
이됩니다.
그래서 문구 당신이 실제로 원하는 것을 할 수있는 select 문으로가는 길입니다
SELECT *
FROM PUBLIC._http_requests
WHERE _http_requests.currentsheet IS NOT NULL
AND _http_requests.currentsheet <> ''
AND _http_requests.session_id IS NOT NULL
AND _http_requests.http_referer IS NOT NULL;