> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> 비교 함수 문서

# 비교 함수

<div id="comparison-rules">
  ## 비교 규칙
</div>

아래의 비교 함수는 [UInt8](/ko/reference/data-types/int-uint) 타입의 `0` 또는 `1`을 반환합니다. 비교는 같은 그룹에 속한 값끼리만
가능합니다(예: `UInt16` 및 `UInt64`). 서로 다른 그룹에 속한 값은 비교할 수 없습니다(예: `UInt16` 및 `DateTime`).
숫자와 문자열은 서로 비교할 수 있으며, 문자열과 날짜, 날짜와 시간도 비교할 수 있습니다.
튜플과 배열은 사전식으로 비교합니다. 즉, 왼쪽과 오른쪽 튜플/배열의 각 대응하는
요소를 순서대로 비교합니다.

다음 타입은 비교할 수 있습니다:

* 숫자 및 Decimal
* 문자열 및 고정 문자열
* 날짜
* 시간이 포함된 날짜
* 튜플(사전식 비교)
* 배열(사전식 비교)

<Note>
  문자열은 바이트 단위로 비교됩니다. 문자열 중 하나에 UTF-8로 인코딩된 멀티바이트 문자가 포함되어 있으면 예상치 못한 결과가 나올 수 있습니다.
  다른 문자열 S2를 접두사로 갖는 문자열 S1은 S2보다 더 긴 것으로 간주됩니다.
</Note>

{/*AUTOGENERATED_START*/}

<div id="equals">
  ## equals
</div>

도입 버전: v1.1.0

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

**구문**

```sql theme={null}
equals(a, b)
        -- a = b
        -- a == b
```

**인수**

* `a` — 첫 번째 값.<sup>[\*](#comparison-rules)</sup> - `b` — 두 번째 값.<sup>[\*](#comparison-rules)</sup>

**반환 값**

`a`가 `b`와 같으면 `1`을, 그렇지 않으면 `0`을 반환합니다 [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**사용 예시**

```sql title=Query theme={null}
SELECT 1 = 1, 1 = 2;
```

```response title=Response theme={null}
┌─equals(1, 1)─┬─equals(1, 2)─┐
│            1 │            0 │
└──────────────┴──────────────┘
```

<div id="globalIn">
  ## globalIn
</div>

도입 버전: v1.1.0

`in`과 같지만 분산 쿼리에서 집합을 전역으로 배포하는 방식을 사용합니다. 이 집합은 모든 원격 서버에 전송됩니다.

**구문**

```sql theme={null}
globalIn(x, set)
```

**인수**

* `x` — 확인할 값입니다. - `set` — 값 집합입니다.

**반환 값**

`x`가 집합에 있으면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT 1 IN (1, 2, 3)
```

```response title=Response theme={null}
1
```

<div id="globalInIgnoreSet">
  ## globalInIgnoreSet
</div>

도입 버전: v1.1.0

`in`과 동일하지만, 분산 쿼리에서 전역 set distribution을 사용합니다. set은 모든 원격 서버로 전송됩니다.
set을 생성하지 않고 유형 분석을 수행할 때 사용하는 IgnoreSet 변형입니다.

**구문**

```sql theme={null}
globalIn(x, set)
```

**인수**

* `x` — 확인할 값입니다. - `set` — 값들의 집합입니다.

**반환 값**

`x`가 집합에 포함되면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT 1 IN (1, 2, 3)
```

```response title=Response theme={null}
1
```

<div id="globalNotIn">
  ## globalNotIn
</div>

도입 버전: v1.1.0

`notIn`과 동일하지만, 분산 쿼리에서 전역 set distribution을 사용합니다. 이 집합은 모든 원격 서버로 전송됩니다.

**구문**

```sql theme={null}
globalNotIn(x, set)
```

**인수**

* `x` — 검사할 값입니다. - `set` — 값 집합입니다.

**반환 값**

`x`가 집합에 포함되지 않으면 1을 반환하고, 그렇지 않으면 0을 반환합니다. [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT 4 NOT IN (1, 2, 3)
```

```response title=Response theme={null}
1
```

<div id="globalNotInIgnoreSet">
  ## globalNotInIgnoreSet
</div>

도입 버전: v1.1.0

`notIn`과 동일하지만, 분산 쿼리에서 전역 set distribution 방식을 사용합니다. set이 모든 원격 서버로 전송됩니다.
이는 set을 생성하지 않고 유형을 분석할 때 사용하는 IgnoreSet 변형입니다.

**구문**

```sql theme={null}
globalNotIn(x, set)
```

**인수**

* `x` — 검사할 값입니다. - `set` — 값의 집합입니다.

**반환 값**

`x`가 집합에 없으면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT 4 NOT IN (1, 2, 3)
```

```response title=Response theme={null}
1
```

<div id="globalNotNullIn">
  ## globalNotNullIn
</div>

도입 버전: v1.1.0

`notNullIn`과 동일하지만, 분산 쿼리에서 전역 set distribution을 사용합니다. 집합은 모든 원격 서버로 전송됩니다.

**구문**

```sql theme={null}
globalNotNullIn(x, set)
```

**인수**

* `x` — 확인할 값입니다. - `set` — 값의 집합입니다.

**반환 값**

`x`가 집합에 없으면 1을 반환하고, 그렇지 않으면 0을 반환합니다. [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT notNullIn(NULL, tuple(1, NULL))
```

```response title=Response theme={null}
0
```

<div id="globalNotNullInIgnoreSet">
  ## globalNotNullInIgnoreSet
</div>

도입 버전: v1.1.0

`notNullIn`과 동일하지만, 분산 쿼리에서 전역 set distribution을 사용합니다. 집합은 모든 원격 server로 전송됩니다.
집합을 생성하지 않고 유형 분석에 사용하는 IgnoreSet 변형입니다.

**구문**

```sql theme={null}
globalNotNullIn(x, set)
```

**인수**

* `x` — 검사할 값입니다. - `set` — 값 집합입니다.

**반환 값**

`x`가 집합에 없으면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT notNullIn(NULL, tuple(1, NULL))
```

```response title=Response theme={null}
0
```

<div id="globalNullIn">
  ## globalNullIn
</div>

v1.1.0에 도입됨

`nullIn`과 동일하지만, 분산 쿼리에서 전역 set distribution을 사용합니다. 이 집합은 모든 원격 서버로 전송됩니다.

**구문**

```sql theme={null}
globalNullIn(x, set)
```

**인수**

* `x` — 확인할 값입니다. - `set` — 값들의 집합입니다.

**반환 값**

x가 집합에 포함되어 있으면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT nullIn(NULL, tuple(1, NULL))
```

```response title=Response theme={null}
1
```

<div id="globalNullInIgnoreSet">
  ## globalNullInIgnoreSet
</div>

도입 버전: v1.1.0

`nullIn`과 동일하지만, 분산 쿼리에서는 전역 set distribution을 사용합니다. set이 모든 원격 서버로 전송됩니다.
set을 생성하지 않고 유형을 분석할 때 사용하는 IgnoreSet 변형입니다.

**구문**

```sql theme={null}
globalNullIn(x, set)
```

**인수**

* `x` — 확인할 값입니다. - `set` — 값들의 집합입니다.

**반환 값**

`x`가 집합에 있으면 1, 그렇지 않으면 0을 반환합니다. [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT nullIn(NULL, tuple(1, NULL))
```

```response title=Response theme={null}
1
```

<div id="greater">
  ## greater
</div>

도입 버전: v1.1.0

두 값을 비교하여 앞의 값이 더 큰지 확인합니다.

**구문**

```sql theme={null}
greater(a, b)
    -- a > b
```

**인수**

* `a` — 첫 번째 값.<sup>[\*](#comparison-rules)</sup> - `b` — 두 번째 값.<sup>[\*](#comparison-rules)</sup>

**반환 값**

`a`가 `b`보다 크면 `1`을, 그렇지 않으면 `0`을 반환합니다 [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**사용 예시**

```sql title=Query theme={null}
SELECT 2 > 1, 1 > 2;
```

```response title=Response theme={null}
┌─greater(2, 1)─┬─greater(1, 2)─┐
│             1 │             0 │
└───────────────┴───────────────┘
```

<div id="greaterOrEquals">
  ## greaterOrEquals
</div>

도입 버전: v1.1.0

두 값을 비교하여 앞의 값이 뒤의 값보다 크거나 같은지 확인합니다.

**구문**

```sql theme={null}
greaterOrEquals(a, b)
    -- a >= b
```

**인수**

* `a` — 첫 번째 값입니다.<sup>[\*](#comparison-rules)</sup> - `b` — 두 번째 값입니다.<sup>[\*](#comparison-rules)</sup>

**반환 값**

`a`가 `b`보다 크거나 같으면 `1`을, 그렇지 않으면 `0`을 반환합니다 [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**사용 예시**

```sql title=Query theme={null}
SELECT 2 >= 1, 2 >= 2, 1 >= 2;
```

```response title=Response theme={null}
┌─greaterOrEquals(2, 1)─┬─greaterOrEquals(2, 2)─┬─greaterOrEquals(1, 2)─┐
│                     1 │                     1 │                     0 │
└───────────────────────┴───────────────────────┴───────────────────────┘
```

<div id="in">
  ## in
</div>

도입 버전: v1.1.0

왼쪽 피연산자가 오른쪽 피연산자 집합의 구성원인지 확인합니다. 구성원이면 1을 반환하고, 그렇지 않으면 0을 반환합니다. 왼쪽 피연산자의 NULL 값은 건너뛰며(집합에 없는 것으로 처리됨), 검사에서 제외합니다.

**구문**

```sql theme={null}
in(x, set)
```

**인수**

* `x` — 확인할 값입니다. - `set` — 값 집합입니다.

**반환 값**

`x`가 집합에 포함되면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT 1 IN (1, 2, 3)
```

```response title=Response theme={null}
1
```

<div id="inIgnoreSet">
  ## inIgnoreSet
</div>

도입 버전: v1.1.0

왼쪽 피연산자가 오른쪽 피연산자 집합에 속하는지 확인합니다. 속하면 1을 반환하고, 그렇지 않으면 0을 반환합니다. 왼쪽 피연산자의 NULL 값은 건너뛰며(집합에 없는 것으로 간주됨) 처리합니다.
이는 집합을 생성하지 않고 유형 분석에 사용되는 IgnoreSet 변형입니다.

**구문**

```sql theme={null}
in(x, set)
```

**인수**

* `x` — 검사할 값입니다. - `set` — 값의 집합입니다.

**반환 값**

`x`가 집합에 있으면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT 1 IN (1, 2, 3)
```

```response title=Response theme={null}
1
```

<div id="isDistinctFrom">
  ## isDistinctFrom
</div>

도입 버전: v25.11.0

두 값에 대해 NULL을 안전하게 처리하는 "같지 않음" 비교를 수행합니다.
값이 서로 다르면(같지 않으면) `true`를 반환합니다. 여기에는 한 값이 NULL이고 다른 값이 NULL이 아닌 경우도 포함됩니다.
값이 같거나 둘 다 NULL이면 `false`를 반환합니다.

**구문**

```sql theme={null}
isDistinctFrom(x, y)
```

**인수**

* `x` — 비교할 첫 번째 값입니다. 모든 ClickHouse 데이터 타입이 될 수 있습니다. [`Any`](/ko/reference/data-types/index)
* `y` — 비교할 두 번째 값입니다. 모든 ClickHouse 데이터 타입이 될 수 있습니다. [`Any`](/ko/reference/data-types/index)

**반환 값**

두 값이 서로 다르면 `true`를 반환하며, NULL도 비교 가능한 값으로 처리합니다.

* x != y이면 `true`를 반환합니다.
  * x 또는 y 중 하나만 NULL이면 `true`를 반환합니다.
  * x = y이거나 x와 y가 모두 NULL이면 `false`를 반환합니다. [`Bool`](/ko/reference/data-types/boolean)

**예시**

**숫자와 NULL을 사용한 기본 사용법**

```sql title=Query theme={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
```

```response title=Response theme={null}
┌─result_1─┬─result_2─┬─result_3─┬─result_4─┐
│        1 │        0 │        1 │        0 │
└──────────┴──────────┴──────────┴──────────┘
```

<div id="isNotDistinctFrom">
  ## isNotDistinctFrom
</div>

도입 버전: v23.8.0

두 값에 대해 NULL을 안전하게 처리하는 "같음" 비교를 수행합니다.
두 값이 같으면 `true`를 반환하며, 두 값이 모두 NULL인 경우도 포함됩니다.
두 값이 다르거나 둘 중 하나만 NULL이면 `false`를 반환합니다.

**구문**

```sql theme={null}
isNotDistinctFrom(x, y)
```

**인수**

* `x` — 비교할 첫 번째 값입니다. 모든 ClickHouse 데이터 타입이 될 수 있습니다. [`Any`](/ko/reference/data-types/index)
* `y` — 비교할 두 번째 값입니다. 모든 ClickHouse 데이터 타입이 될 수 있습니다. [`Any`](/ko/reference/data-types/index)

**반환 값**

두 값이 같으면 `true`를 반환하며, NULL도 비교 가능한 값으로 처리합니다.

* x = y이면 `true`를 반환합니다.
  * x와 y가 모두 NULL이면 `true`를 반환합니다.
  * x != y이거나 x와 y 중 하나만 NULL이면 `false`를 반환합니다. [`Bool`](/ko/reference/data-types/boolean)

**예시**

**숫자와 NULL을 사용한 기본 사용법**

```sql title=Query theme={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
```

```response title=Response theme={null}
┌─result_1─┬─result_2─┬─result_3─┬─result_4─┐
│        1 │        0 │        1 │        0 │
└──────────┴──────────┴──────────┴──────────┘
```

<div id="less">
  ## less
</div>

지원 시작 버전: v1.1.0

두 값을 비교하여 앞의 값이 더 작은지 확인합니다.

**구문**

```sql theme={null}
less(a, b)
    -- a < b
```

**인수**

* `a` — 첫 번째 값.<sup>[\*](#comparison-rules)</sup> - `b` — 두 번째 값.<sup>[\*](#comparison-rules)</sup>

**반환 값**

`a`가 `b`보다 작으면 `1`을, 그렇지 않으면 `0`을 반환합니다 [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**사용 예시**

```sql title=Query theme={null}
SELECT 1 < 2, 2 < 1;
```

```response title=Response theme={null}
┌─less(1, 2)─┬─less(2, 1)─┐
│          1 │          0 │
└────────────┴────────────┘
```

<div id="lessOrEquals">
  ## lessOrEquals
</div>

v1.1.0에서 도입됨

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

**구문**

```sql theme={null}
lessOrEquals(a, b)
-- a <= b
```

**인수**

* `a` — 첫 번째 값.<sup>[\*](#comparison-rules)</sup> - `b` — 두 번째 값.<sup>[\*](#comparison-rules)</sup>

**반환 값**

`a`가 `b`보다 작거나 같으면 `1`을 반환하고, 그렇지 않으면 `0`을 반환합니다 [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**사용 예시**

```sql title=Query theme={null}
SELECT 1 <= 2, 2 <= 2, 3 <= 2;
```

```response title=Response theme={null}
┌─lessOrEquals(1, 2)─┬─lessOrEquals(2, 2)─┬─lessOrEquals(3, 2)─┐
│                  1 │                  1 │                  0 │
└────────────────────┴────────────────────┴────────────────────┘
```

<div id="notEquals">
  ## notEquals
</div>

도입 버전: v1.1.0

두 값이 같지 않은지 비교합니다.

**구문**

```sql theme={null}
notEquals(a, b)
    -- a != b
    -- a <> b
```

**인수**

* `a` — 첫 번째 값.<sup>[\*](#comparison-rules)</sup> - `b` — 두 번째 값.<sup>[\*](#comparison-rules)</sup>

**반환 값**

`a`가 `b`와 같지 않으면 `1`을, 그렇지 않으면 `0`을 반환합니다. [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**사용 예시**

```sql title=Query theme={null}
SELECT 1 != 2, 1 != 1;
```

```response title=Response theme={null}
┌─notEquals(1, 2)─┬─notEquals(1, 1)─┐
│               1 │               0 │
└─────────────────┴─────────────────┘
```

<div id="notIn">
  ## notIn
</div>

도입 버전: v1.1.0

왼쪽 피연산자가 오른쪽 피연산자 집합에 포함되지 않는지 확인합니다. 집합에 포함되지 않으면 1을 반환하고, 그렇지 않으면 0을 반환합니다. 왼쪽 피연산자의 NULL 값은 무시됩니다.

**구문**

```sql theme={null}
notIn(x, set)
```

**인수**

* `x` — 확인할 값입니다. - `set` — 값 집합입니다.

**반환 값**

x가 집합에 없으면 1을 반환하고, 그렇지 않으면 0을 반환합니다. [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT 4 NOT IN (1, 2, 3)
```

```response title=Response theme={null}
1
```

<div id="notInIgnoreSet">
  ## notInIgnoreSet
</div>

도입 버전: v1.1.0

왼쪽 피연산자가 오른쪽 피연산자 Set에 포함되지 않는지 확인합니다. Set에 포함되지 않으면 1을 반환하고, 그렇지 않으면 0을 반환합니다. 왼쪽 피연산자의 NULL 값은 무시됩니다.
이는 Set을 생성하지 않고 유형 분석에 사용하는 IgnoreSet 변형입니다.

**구문**

```sql theme={null}
notIn(x, set)
```

**인수**

* `x` — 확인할 값입니다. - `set` — 값의 집합입니다.

**반환 값**

`x`가 집합에 없으면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT 4 NOT IN (1, 2, 3)
```

```response title=Response theme={null}
1
```

<div id="notNullIn">
  ## notNullIn
</div>

도입 버전: v1.1.0

왼쪽 피연산자가 오른쪽 피연산자 집합에 속하지 않는지 확인합니다. `notIn`과 달리 NULL 값은 무시되지 않습니다. NULL은 집합 요소와 비교되며, NULL = NULL은 true로 평가됩니다.

**구문**

```sql theme={null}
notNullIn(x, set)
```

**인수**

* `x` — 확인할 값입니다. - `set` — 값들의 집합입니다.

**반환 값**

x가 `set`에 없으면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT notNullIn(NULL, tuple(1, NULL))
```

```response title=Response theme={null}
0
```

<div id="notNullInIgnoreSet">
  ## notNullInIgnoreSet
</div>

도입 버전: v1.1.0

왼쪽 피연산자가 오른쪽 피연산자 집합에 속하지 않는지 확인합니다. `notIn`과 달리 NULL 값은 건너뛰지 않습니다. NULL은 집합 요소와 비교되며, NULL = NULL은 true로 평가됩니다.
집합을 생성하지 않고 유형 분석에 사용하는 IgnoreSet 변형입니다.

**구문**

```sql theme={null}
notNullIn(x, set)
```

**인수**

* `x` — 확인할 값입니다. - `set` — 값 집합입니다.

**반환 값**

`x`가 `set`에 포함되어 있지 않으면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT notNullIn(NULL, tuple(1, NULL))
```

```response title=Response theme={null}
0
```

<div id="nullIn">
  ## nullIn
</div>

도입 버전: v1.1.0

왼쪽 피연산자가 오른쪽 피연산자 집합에 속하는지 확인합니다. `in`과 달리 NULL 값은 건너뛰지 않습니다. NULL을 집합 요소와 비교하며, NULL = NULL은 true로 평가됩니다.

**구문**

```sql theme={null}
nullIn(x, set)
```

**인수**

* `x` — 확인할 값입니다. - `set` — 값 집합입니다.

**반환 값**

`x`가 집합에 포함되어 있으면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT nullIn(NULL, tuple(1, NULL))
```

```response title=Response theme={null}
1
```

<div id="nullInIgnoreSet">
  ## nullInIgnoreSet
</div>

도입 버전: v1.1.0

왼쪽 피연산자가 오른쪽 피연산자 집합의 구성원인지 확인합니다. `in`과 달리 NULL 값은 건너뛰지 않습니다. NULL은 집합의 요소와 비교되며, NULL = NULL은 true로 평가됩니다.
이는 집합을 생성하지 않고 유형 분석에 사용하는 IgnoreSet 변형입니다.

**구문**

```sql theme={null}
nullIn(x, set)
```

**인수**

* `x` — 확인할 값입니다. - `set` — 값들의 집합입니다.

**반환 값**

`x`가 집합에 포함되면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/ko/reference/data-types/int-uint)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT nullIn(NULL, tuple(1, NULL))
```

```response title=Response theme={null}
1
```
