메인 콘텐츠로 건너뛰기

비교 규칙

아래의 비교 함수는 UInt8 타입의 0 또는 1을 반환합니다. 비교는 같은 그룹에 속한 값끼리만 가능합니다(예: UInt16UInt64). 서로 다른 그룹에 속한 값은 비교할 수 없습니다(예: UInt16DateTime). 숫자와 문자열은 서로 비교할 수 있으며, 문자열과 날짜, 날짜와 시간도 비교할 수 있습니다. 튜플과 배열은 사전식으로 비교합니다. 즉, 왼쪽과 오른쪽 튜플/배열의 각 대응하는 요소를 순서대로 비교합니다. 다음 타입은 비교할 수 있습니다:
  • 숫자 및 Decimal
  • 문자열 및 고정 문자열
  • 날짜
  • 시간이 포함된 날짜
  • 튜플(사전식 비교)
  • 배열(사전식 비교)
문자열은 바이트 단위로 비교됩니다. 문자열 중 하나에 UTF-8로 인코딩된 멀티바이트 문자가 포함되어 있으면 예상치 못한 결과가 나올 수 있습니다. 다른 문자열 S2를 접두사로 갖는 문자열 S1은 S2보다 더 긴 것으로 간주됩니다.

equals

도입 버전: v1.1.0 두 값이 같은지 비교합니다. 구문
equals(a, b)
        -- a = b
        -- a == b
인수
  • a — 첫 번째 값.* - b — 두 번째 값.*
반환 값 ab와 같으면 1을, 그렇지 않으면 0을 반환합니다 UInt8 예시 사용 예시
Query
SELECT 1 = 1, 1 = 2;
Response
┌─equals(1, 1)─┬─equals(1, 2)─┐
│            1 │            0 │
└──────────────┴──────────────┘

globalIn

도입 버전: v1.1.0 in과 같지만 분산 쿼리에서 집합을 전역으로 배포하는 방식을 사용합니다. 이 집합은 모든 원격 서버에 전송됩니다. 구문
globalIn(x, set)
인수
  • x — 확인할 값입니다. - set — 값 집합입니다.
반환 값 x가 집합에 있으면 1을, 그렇지 않으면 0을 반환합니다. UInt8 예시 기본 사용법
Query
SELECT 1 IN (1, 2, 3)
Response
1

globalInIgnoreSet

도입 버전: v1.1.0 in과 동일하지만, 분산 쿼리에서 전역 set distribution을 사용합니다. set은 모든 원격 서버로 전송됩니다. set을 생성하지 않고 유형 분석을 수행할 때 사용하는 IgnoreSet 변형입니다. 구문
globalIn(x, set)
인수
  • x — 확인할 값입니다. - set — 값들의 집합입니다.
반환 값 x가 집합에 포함되면 1을, 그렇지 않으면 0을 반환합니다. UInt8 예시 기본 사용법
Query
SELECT 1 IN (1, 2, 3)
Response
1

globalNotIn

도입 버전: v1.1.0 notIn과 동일하지만, 분산 쿼리에서 전역 set distribution을 사용합니다. 이 집합은 모든 원격 서버로 전송됩니다. 구문
globalNotIn(x, set)
인수
  • x — 검사할 값입니다. - set — 값 집합입니다.
반환 값 x가 집합에 포함되지 않으면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8 예시 기본 사용법
Query
SELECT 4 NOT IN (1, 2, 3)
Response
1

globalNotInIgnoreSet

도입 버전: v1.1.0 notIn과 동일하지만, 분산 쿼리에서 전역 set distribution 방식을 사용합니다. set이 모든 원격 서버로 전송됩니다. 이는 set을 생성하지 않고 유형을 분석할 때 사용하는 IgnoreSet 변형입니다. 구문
globalNotIn(x, set)
인수
  • x — 검사할 값입니다. - set — 값의 집합입니다.
반환 값 x가 집합에 없으면 1을, 그렇지 않으면 0을 반환합니다. UInt8 예시 기본 사용법
Query
SELECT 4 NOT IN (1, 2, 3)
Response
1

globalNotNullIn

도입 버전: v1.1.0 notNullIn과 동일하지만, 분산 쿼리에서 전역 set distribution을 사용합니다. 집합은 모든 원격 서버로 전송됩니다. 구문
globalNotNullIn(x, set)
인수
  • x — 확인할 값입니다. - set — 값의 집합입니다.
반환 값 x가 집합에 없으면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8 예시 기본 사용법
Query
SELECT notNullIn(NULL, tuple(1, NULL))
Response
0

globalNotNullInIgnoreSet

도입 버전: v1.1.0 notNullIn과 동일하지만, 분산 쿼리에서 전역 set distribution을 사용합니다. 집합은 모든 원격 server로 전송됩니다. 집합을 생성하지 않고 유형 분석에 사용하는 IgnoreSet 변형입니다. 구문
globalNotNullIn(x, set)
인수
  • x — 검사할 값입니다. - set — 값 집합입니다.
반환 값 x가 집합에 없으면 1을, 그렇지 않으면 0을 반환합니다. UInt8 예시 기본 사용법
Query
SELECT notNullIn(NULL, tuple(1, NULL))
Response
0

globalNullIn

v1.1.0에 도입됨 nullIn과 동일하지만, 분산 쿼리에서 전역 set distribution을 사용합니다. 이 집합은 모든 원격 서버로 전송됩니다. 구문
globalNullIn(x, set)
인수
  • x — 확인할 값입니다. - set — 값들의 집합입니다.
반환 값 x가 집합에 포함되어 있으면 1을, 그렇지 않으면 0을 반환합니다. UInt8 예시 기본 사용법
Query
SELECT nullIn(NULL, tuple(1, NULL))
Response
1

globalNullInIgnoreSet

도입 버전: v1.1.0 nullIn과 동일하지만, 분산 쿼리에서는 전역 set distribution을 사용합니다. set이 모든 원격 서버로 전송됩니다. set을 생성하지 않고 유형을 분석할 때 사용하는 IgnoreSet 변형입니다. 구문
globalNullIn(x, set)
인수
  • x — 확인할 값입니다. - set — 값들의 집합입니다.
반환 값 x가 집합에 있으면 1, 그렇지 않으면 0을 반환합니다. UInt8 예시 기본 사용법
Query
SELECT nullIn(NULL, tuple(1, NULL))
Response
1

greater

도입 버전: v1.1.0 두 값을 비교하여 앞의 값이 더 큰지 확인합니다. 구문
greater(a, b)
    -- a > b
인수
  • a — 첫 번째 값.* - b — 두 번째 값.*
반환 값 ab보다 크면 1을, 그렇지 않으면 0을 반환합니다 UInt8 예시 사용 예시
Query
SELECT 2 > 1, 1 > 2;
Response
┌─greater(2, 1)─┬─greater(1, 2)─┐
│             1 │             0 │
└───────────────┴───────────────┘

greaterOrEquals

도입 버전: v1.1.0 두 값을 비교하여 앞의 값이 뒤의 값보다 크거나 같은지 확인합니다. 구문
greaterOrEquals(a, b)
    -- a >= b
인수
  • a — 첫 번째 값입니다.* - b — 두 번째 값입니다.*
반환 값 ab보다 크거나 같으면 1을, 그렇지 않으면 0을 반환합니다 UInt8 예시 사용 예시
Query
SELECT 2 >= 1, 2 >= 2, 1 >= 2;
Response
┌─greaterOrEquals(2, 1)─┬─greaterOrEquals(2, 2)─┬─greaterOrEquals(1, 2)─┐
│                     1 │                     1 │                     0 │
└───────────────────────┴───────────────────────┴───────────────────────┘

in

도입 버전: v1.1.0 왼쪽 피연산자가 오른쪽 피연산자 집합의 구성원인지 확인합니다. 구성원이면 1을 반환하고, 그렇지 않으면 0을 반환합니다. 왼쪽 피연산자의 NULL 값은 건너뛰며(집합에 없는 것으로 처리됨), 검사에서 제외합니다. 구문
in(x, set)
인수
  • x — 확인할 값입니다. - set — 값 집합입니다.
반환 값 x가 집합에 포함되면 1을, 그렇지 않으면 0을 반환합니다. UInt8 예시 기본 사용법
Query
SELECT 1 IN (1, 2, 3)
Response
1

inIgnoreSet

도입 버전: v1.1.0 왼쪽 피연산자가 오른쪽 피연산자 집합에 속하는지 확인합니다. 속하면 1을 반환하고, 그렇지 않으면 0을 반환합니다. 왼쪽 피연산자의 NULL 값은 건너뛰며(집합에 없는 것으로 간주됨) 처리합니다. 이는 집합을 생성하지 않고 유형 분석에 사용되는 IgnoreSet 변형입니다. 구문
in(x, set)
인수
  • x — 검사할 값입니다. - set — 값의 집합입니다.
반환 값 x가 집합에 있으면 1을, 그렇지 않으면 0을 반환합니다. UInt8 예시 기본 사용법
Query
SELECT 1 IN (1, 2, 3)
Response
1

isDistinctFrom

도입 버전: v25.11.0 두 값에 대해 null-safe “같지 않음” 비교를 수행합니다. 값이 서로 다르면(같지 않으면) true를 반환합니다. 여기에는 한 값이 NULL이고 다른 값이 NULL이 아닌 경우도 포함됩니다. 값이 같거나 둘 다 NULL이면 false를 반환합니다. 구문
isDistinctFrom(x, y)
인수
  • x — 비교할 첫 번째 값입니다. 모든 ClickHouse 데이터 타입이 될 수 있습니다. Any
  • y — 비교할 두 번째 값입니다. 모든 ClickHouse 데이터 타입이 될 수 있습니다. Any
반환 값 두 값이 서로 다르면 true를 반환하며, NULL도 비교 가능한 값으로 처리합니다.
  • x != y이면 true를 반환합니다.
    • x 또는 y 중 하나만 NULL이면 true를 반환합니다.
    • x = y이거나 x와 y가 모두 NULL이면 false를 반환합니다. Bool
예시 숫자와 NULL을 사용한 기본 사용법
Query
SELECT
    isDistinctFrom(1, 2) AS result_1,
    isDistinctFrom(1, 1) AS result_2,
    isDistinctFrom(NULL, 1) AS result_3,
    isDistinctFrom(NULL, NULL) AS result_4
Response
┌─result_1─┬─result_2─┬─result_3─┬─result_4─┐
│        1 │        0 │        1 │        0 │
└──────────┴──────────┴──────────┴──────────┘

isNotDistinctFrom

도입 버전: v23.8.0 두 값에 대해 NULL을 안전하게 처리하는 “같음” 비교를 수행합니다. 두 값이 같으면 true를 반환하며, 두 값이 모두 NULL인 경우도 포함됩니다. 두 값이 다르거나 둘 중 하나만 NULL이면 false를 반환합니다. 구문
isNotDistinctFrom(x, y)
인수
  • x — 비교할 첫 번째 값입니다. 모든 ClickHouse 데이터 타입이 될 수 있습니다. Any
  • y — 비교할 두 번째 값입니다. 모든 ClickHouse 데이터 타입이 될 수 있습니다. Any
반환 값 두 값이 같으면 true를 반환하며, NULL도 비교 가능한 값으로 처리합니다.
  • x = y이면 true를 반환합니다.
    • x와 y가 모두 NULL이면 true를 반환합니다.
    • x != y이거나 x와 y 중 하나만 NULL이면 false를 반환합니다. Bool
예시 숫자와 NULL을 사용한 기본 사용법
Query
SELECT
    isNotDistinctFrom(1, 1) AS result_1,
    isNotDistinctFrom(1, 2) AS result_2,
    isNotDistinctFrom(NULL, NULL) AS result_3,
    isNotDistinctFrom(NULL, 1) AS result_4
Response
┌─result_1─┬─result_2─┬─result_3─┬─result_4─┐
│        1 │        0 │        1 │        0 │
└──────────┴──────────┴──────────┴──────────┘

less

지원 시작 버전: v1.1.0 두 값을 비교하여 앞의 값이 더 작은지 확인합니다. 구문
less(a, b)
    -- a < b
인수
  • a — 첫 번째 값.* - b — 두 번째 값.*
반환 값 ab보다 작으면 1을, 그렇지 않으면 0을 반환합니다 UInt8 예시 사용 예시
Query
SELECT 1 < 2, 2 < 1;
Response
┌─less(1, 2)─┬─less(2, 1)─┐
│          1 │          0 │
└────────────┴────────────┘

lessOrEquals

v1.1.0에서 도입됨 두 값이 작거나 같은지 비교합니다. 구문
lessOrEquals(a, b)
-- a <= b
인수
  • a — 첫 번째 값.* - b — 두 번째 값.*
반환 값 ab보다 작거나 같으면 1을 반환하고, 그렇지 않으면 0을 반환합니다 UInt8 예시 사용 예시
Query
SELECT 1 <= 2, 2 <= 2, 3 <= 2;
Response
┌─lessOrEquals(1, 2)─┬─lessOrEquals(2, 2)─┬─lessOrEquals(3, 2)─┐
│                  1 │                  1 │                  0 │
└────────────────────┴────────────────────┴────────────────────┘

notEquals

도입 버전: v1.1.0 두 값이 같지 않은지 비교합니다. 구문
notEquals(a, b)
    -- a != b
    -- a <> b
인수
  • a — 첫 번째 값.* - b — 두 번째 값.*
반환 값 ab와 같지 않으면 1을, 그렇지 않으면 0을 반환합니다. UInt8 예시 사용 예시
Query
SELECT 1 != 2, 1 != 1;
Response
┌─notEquals(1, 2)─┬─notEquals(1, 1)─┐
│               1 │               0 │
└─────────────────┴─────────────────┘

notIn

도입 버전: v1.1.0 왼쪽 피연산자가 오른쪽 피연산자 집합에 포함되지 않는지 확인합니다. 집합에 포함되지 않으면 1을 반환하고, 그렇지 않으면 0을 반환합니다. 왼쪽 피연산자의 NULL 값은 무시됩니다. 구문
notIn(x, set)
인수
  • x — 확인할 값입니다. - set — 값 집합입니다.
반환 값 x가 집합에 없으면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8 예시 기본 사용법
Query
SELECT 4 NOT IN (1, 2, 3)
Response
1

notInIgnoreSet

도입 버전: v1.1.0 왼쪽 피연산자가 오른쪽 피연산자 Set에 포함되지 않는지 확인합니다. Set에 포함되지 않으면 1을 반환하고, 그렇지 않으면 0을 반환합니다. 왼쪽 피연산자의 NULL 값은 무시됩니다. 이는 Set을 생성하지 않고 유형 분석에 사용하는 IgnoreSet 변형입니다. 구문
notIn(x, set)
인수
  • x — 확인할 값입니다. - set — 값의 집합입니다.
반환 값 x가 집합에 없으면 1을, 그렇지 않으면 0을 반환합니다. UInt8 예시 기본 사용법
Query
SELECT 4 NOT IN (1, 2, 3)
Response
1

notNullIn

도입 버전: v1.1.0 왼쪽 피연산자가 오른쪽 피연산자 집합에 속하지 않는지 확인합니다. notIn과 달리 NULL 값은 무시되지 않습니다. NULL은 집합 요소와 비교되며, NULL = NULL은 true로 평가됩니다. 구문
notNullIn(x, set)
인수
  • x — 확인할 값입니다. - set — 값들의 집합입니다.
반환 값 x가 set에 없으면 1을, 그렇지 않으면 0을 반환합니다. UInt8 예시 기본 사용법
Query
SELECT notNullIn(NULL, tuple(1, NULL))
Response
0

notNullInIgnoreSet

도입 버전: v1.1.0 왼쪽 피연산자가 오른쪽 피연산자 집합에 속하지 않는지 확인합니다. notIn과 달리 NULL 값은 건너뛰지 않습니다. NULL은 집합 요소와 비교되며, NULL = NULL은 true로 평가됩니다. 집합을 생성하지 않고 유형 분석에 사용하는 IgnoreSet 변형입니다. 구문
notNullIn(x, set)
인수
  • x — 확인할 값입니다. - set — 값 집합입니다.
반환 값 xset에 포함되어 있지 않으면 1을, 그렇지 않으면 0을 반환합니다. UInt8 예시 기본 사용법
Query
SELECT notNullIn(NULL, tuple(1, NULL))
Response
0

nullIn

도입 버전: v1.1.0 왼쪽 피연산자가 오른쪽 피연산자 집합에 속하는지 확인합니다. in과 달리 NULL 값은 건너뛰지 않습니다. NULL을 집합 요소와 비교하며, NULL = NULL은 true로 평가됩니다. 구문
nullIn(x, set)
인수
  • x — 확인할 값입니다. - set — 값 집합입니다.
반환 값 x가 집합에 포함되어 있으면 1을, 그렇지 않으면 0을 반환합니다. UInt8 예시 기본 사용법
Query
SELECT nullIn(NULL, tuple(1, NULL))
Response
1

nullInIgnoreSet

도입 버전: v1.1.0 왼쪽 피연산자가 오른쪽 피연산자 집합의 구성원인지 확인합니다. in과 달리 NULL 값은 건너뛰지 않습니다. NULL은 집합의 요소와 비교되며, NULL = NULL은 true로 평가됩니다. 이는 집합을 생성하지 않고 유형 분석에 사용하는 IgnoreSet 변형입니다. 구문
nullIn(x, set)
인수
  • x — 확인할 값입니다. - set — 값들의 집합입니다.
반환 값 x가 집합에 포함되면 1을, 그렇지 않으면 0을 반환합니다. UInt8 예시 기본 사용법
Query
SELECT nullIn(NULL, tuple(1, NULL))
Response
1
마지막 수정일 2026년 6월 10일