본문으로 바로가기
본문으로 바로가기

비교 함수

비교 규칙

아래 비교 FUNCTION들은 UInt8 타입의 0 또는 1을 반환합니다. 동일한 그룹 내의 값들만 비교할 수 있습니다(예: UInt16UInt64). 서로 다른 그룹의 값들(예: UInt16DateTime)은 비교할 수 없습니다. 숫자와 문자열 간의 비교, 문자열과 날짜 간의 비교, 날짜와 시간 간의 비교가 가능합니다. 튜플과 배열의 경우, 비교는 사전식(lexicographic)으로 이루어지며, 왼쪽과 오른쪽 튜플/배열의 각 대응하는 요소를 순서대로 비교합니다.

비교 가능한 타입은 다음과 같습니다.

  • 숫자와 데시멀(decimal)
  • 문자열과 고정 길이 문자열
  • 날짜
  • 날짜와 시간
  • 튜플(사전식 비교)
  • 배열(사전식 비교)
참고

문자열은 바이트 단위로 비교합니다. 문자열 중 하나에 UTF-8로 인코딩된 멀티바이트 문자가 포함된 경우 예기치 않은 결과가 발생할 수 있습니다. 문자열 S2를 접두사로 가지는 문자열 S1은 S2보다 더 긴 문자열로 간주됩니다.

equals

도입: v1.1

두 값을 비교하여 같은지 평가합니다.

구문

equals(a, b)
        -- a = b
        -- a == b

인수

  • a — 첫 번째 값.* - b — 두 번째 값.*

반환 값

ab와 같으면 1, 그렇지 않으면 0을 반환합니다. UInt8

예제

사용 예제

SELECT 1 = 1, 1 = 2;
┌─equals(1, 1)─┬─equals(1, 2)─┐
│            1 │            0 │
└──────────────┴──────────────┘

greater

도입된 버전: v1.1

두 값을 비교하여 앞의 값이 뒤의 값보다 큰지 판별합니다.

구문

greater(a, b)
    -- a > b

인수

  • a — 첫 번째 값.* - b — 두 번째 값.*

반환 값

ab보다 크면 1, 그렇지 않으면 0을 반환합니다. 반환 형식은 UInt8입니다.

예제

사용 예제

SELECT 2 > 1, 1 > 2;
┌─greater(2, 1)─┬─greater(1, 2)─┐
│             1 │             0 │
└───────────────┴───────────────┘

greaterOrEquals

도입: v1.1

두 값이 크거나 같은지 비교합니다.

구문

greaterOrEquals(a, b)
    -- a >= b

인수

  • a — 첫 번째 값.* - b — 두 번째 값.*

반환 값

ab보다 크거나 같으면 1을, 그렇지 않으면 0을 반환합니다. 반환 타입은 UInt8입니다.

예시

사용 예시

SELECT 2 >= 1, 2 >= 2, 1 >= 2;
┌─greaterOrEquals(2, 1)─┬─greaterOrEquals(2, 2)─┬─greaterOrEquals(1, 2)─┐
│                     1 │                     1 │                     0 │
└───────────────────────┴───────────────────────┴───────────────────────┘

isDistinctFrom

도입 버전: v25.11

두 값 간 NULL-안전(null-safe) 「같지 않음(not equals)」 비교를 수행합니다. 한 값은 NULL이고 다른 값은 NULL이 아닌 경우를 포함하여, 두 값이 서로 다를(distinct, 같지 않을) 때 true를 반환합니다. 두 값이 같거나 둘 다 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을 사용하는 기본 예제

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
┌─result_1─┬─result_2─┬─result_3─┬─result_4─┐
│        1 │        0 │        1 │        0 │
└──────────┴──────────┴──────────┴──────────┘

isNotDistinctFrom

도입된 버전: v25.10

두 값에 대해 NULL에 안전한 「equals」 비교를 수행합니다. 두 값이 동일하면, 둘 다 NULL인 경우를 포함하여 true를 반환합니다. 두 값이 서로 다르거나 둘 중 하나만 NULL이면 false를 반환합니다.

구문

isNotDistinctFrom(x, y)

인수(Arguments)

  • x — 비교할 첫 번째 값입니다. 어떤 ClickHouse 데이터 타입이든 사용할 수 있습니다. Any
  • y — 비교할 두 번째 값입니다. 어떤 ClickHouse 데이터 타입이든 사용할 수 있습니다. Any

반환 값(Returned value)

NULL 값을 비교 가능한 값으로 취급하여 두 값이 같으면 true를 반환합니다.

  • x = y이면 true를 반환합니다.
    • x와 y가 모두 NULL이면 true를 반환합니다.
    • x != y이거나 x와 y 중 정확히 하나만 NULL이면 false를 반환합니다. Bool

예시(Examples)

숫자와 NULL에 대한 기본 사용 예

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
┌─result_1─┬─result_2─┬─result_3─┬─result_4─┐
│        1 │        0 │        1 │        0 │
└──────────┴──────────┴──────────┴──────────┘

less

도입: v1.1

두 값을 비교하여 앞의 값이 뒤의 값보다 작은지(미만 관계인지) 여부를 판단합니다.

구문

less(a, b)
    -- a < b

인수

  • a — 첫 번째 값.* - b — 두 번째 값.*

반환 값

ab보다 작으면 1, 그렇지 않으면 0을 반환합니다. 반환 값의 타입은 UInt8입니다.

예시

사용 예시

SELECT 1 < 2, 2 < 1;
┌─less(1, 2)─┬─less(2, 1)─┐
│          1 │          0 │
└────────────┴────────────┘

lessOrEquals

도입된 버전: v1.1

두 값이 작거나 같은지 비교합니다.

구문

lessOrEquals(a, b)
-- a <= b

인수

  • a — 첫 번째 값.* - b — 두 번째 값.*

반환 값

ab보다 작거나 같으면 1, 그렇지 않으면 0을 반환합니다. UInt8

예제

사용 예제

SELECT 1 <= 2, 2 <= 2, 3 <= 2;
┌─lessOrEquals(1, 2)─┬─lessOrEquals(2, 2)─┬─lessOrEquals(3, 2)─┐
│                  1 │                  1 │                  0 │
└────────────────────┴────────────────────┴────────────────────┘

notEquals

도입: v1.1

두 값이 서로 다른지 비교합니다.

구문

notEquals(a, b)
    -- a != b
    -- a <> b

인수

  • a — 첫 번째 값.* - b — 두 번째 값.*

반환 값

ab와 같지 않으면 1을, 그렇지 않으면 0을 반환합니다. 반환 타입은 UInt8입니다.

예제

사용 예제

SELECT 1 != 2, 1 != 1;
┌─notEquals(1, 2)─┬─notEquals(1, 1)─┐
│               1 │               0 │
└─────────────────┴─────────────────┘