메인 콘텐츠로 건너뛰기
WHERE 절을 사용하면 SELECTFROM 절에서 가져오는 데이터를 필터링할 수 있습니다. WHERE 절이 있으면 그 뒤에는 UInt8 유형의 표현식이 와야 합니다. 이 표현식의 평가 결과가 0인 행은 이후 처리나 결과에서 제외됩니다. WHERE 절 뒤의 표현식은 비교논리 연산자, 또는 여러 일반 함수와 함께 자주 사용됩니다. 기반 테이블 엔진이 이를 지원하면 WHERE 표현식은 인덱스와 파티션 프루닝을 활용할 수 있도록 평가됩니다.
PREWHEREPREWHERE라는 필터링 최적화도 있습니다. Prewhere는 필터링을 더 효율적으로 적용하기 위한 최적화입니다. PREWHERE 절을 명시적으로 지정하지 않아도 기본적으로 활성화됩니다.

NULL 검사하기

값이 NULL인지 확인해야 하는 경우 다음을 사용합니다: 그렇지 않으면 NULL이 포함된 표현식은 절대 조건을 만족하지 않습니다.

논리 연산자를 사용한 데이터 필터링

여러 조건을 결합할 때는 WHERE 절과 함께 다음 논리 함수를 사용할 수 있습니다:

조건으로 UInt8 컬럼 사용하기

ClickHouse에서는 UInt8 컬럼을 불리언 조건으로 직접 사용할 수 있습니다. 이때 0false이고, 0이 아닌 모든 값(일반적으로 1)은 true입니다. 이에 대한 예시는 아래 섹션에 있습니다.

비교 연산자 사용

다음 비교 연산자를 사용할 수 있습니다:

패턴 매칭과 조건 표현식

비교 연산자 외에도 WHERE 절에서 패턴 매칭과 조건 표현식을 사용할 수 있습니다. 사용 예시는 “패턴 매칭과 조건 표현식”을 참조하십시오.

리터럴, 컬럼 또는 서브쿼리가 있는 표현식

WHERE 절 뒤에 오는 표현식에는 리터럴, 컬럼 또는 서브쿼리도 포함될 수 있습니다. 서브쿼리는 조건에 사용할 값을 반환하는 중첩된 SELECT SQL 문입니다. 복잡한 조건에서는 리터럴, 컬럼, 서브쿼리를 함께 사용할 수 있습니다:

예시

NULL 검사하기

NULL 값이 포함된 쿼리:

논리 연산자를 사용한 데이터 필터링

다음 테이블과 데이터를 살펴보겠습니다:
1. AND - 두 조건이 모두 참이어야 합니다:
2. OR - 하나 이상의 조건이 참이어야 합니다:
3. NOT - 조건을 부정합니다:
4. XOR - 정확히 하나의 조건만 참이어야 합니다(둘 다 참이면 안 됨):
5. 여러 연산자 조합하기:
6. 함수 구문 사용하기:
SQL 키워드 구문(AND, OR, NOT, XOR)이 일반적으로 가독성이 더 좋지만, 함수 구문은 복잡한 표현식이나 동적 쿼리를 작성할 때 유용할 수 있습니다.

조건으로 UInt8 컬럼 사용하기

앞선 예시의 테이블을 사용하면 컬럼 이름 자체를 조건으로 직접 사용할 수 있습니다:

비교 연산자 사용

아래 예시에서는 위의 예시에 있는 테이블과 데이터를 사용합니다. 간결성을 위해 결과는 생략합니다. 1. true에 대한 명시적 동등 비교(= 1 또는 = true):
2. false와 명시적으로 같음을 비교(= 0 또는 = false):
3. 부등 조건(!= 0 또는 != false):
4. 보다 큼:
5. 작거나 같음:
6. 다른 조건과 함께 사용하기:
7. IN 연산자 사용: 아래 예시에서 (1, true)tuple입니다.
이 작업을 수행할 때 배열도 사용할 수 있습니다:
8. 비교 방식 혼용:

패턴 매칭과 조건 표현식

아래 예시에서는 위의 예시에서 사용한 테이블과 데이터를 사용합니다. 간단히 보여주기 위해 결과는 생략했습니다.

LIKE 예시

ILIKE 예시

IF 예시

multiIf 예시

CASE 예시

단순한 CASE:
조건식 CASE:
마지막 수정일 2026년 7월 2일