> ## 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.

> 논리 함수에 대한 문서

# 논리 함수

아래 함수는 임의의 숫자 타입의 인수에 대해 논리 연산을 수행합니다.
반환값은 [`UInt8`](/ko/reference/data-types/int-uint) 타입의 `0` 또는 `1`이며, 경우에 따라 `NULL`일 수 있습니다.

인수로 전달된 0은 `false`로, 0이 아닌 값은 `true`로 간주됩니다.

{/*AUTOGENERATED_START*/}

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

도입 버전: v1.1.0

두 개 이상의 값에 대한 논리곱을 계산합니다.

설정 [`short_circuit_function_evaluation`](/ko/reference/settings/session-settings#short_circuit_function_evaluation)은 단락 평가 사용 여부를 제어합니다.
이 설정을 활성화하면 `(val_1 AND val_2 AND ... AND val_{i-1})`가 `true`일 때만 `val_i`를 평가합니다.

예를 들어, 단락 평가를 사용하면 쿼리 `SELECT and(number = 2, intDiv(1, number)) FROM numbers(5)`를 실행할 때 0으로 나누기 예외가 발생하지 않습니다.
인수로 전달된 0은 `false`로 간주하고, 0이 아닌 값은 `true`로 간주합니다.

**구문**

```sql theme={null}
and(val1, val2[, ...])
```

**인수**

* `val1, val2[, ...]` — 최소 2개 이상의 값 목록입니다. [`Nullable((U)Int*)`](/ko/reference/data-types/nullable) 또는 [`Nullable(Float*)`](/ko/reference/data-types/nullable)

**반환 값**

다음을 반환합니다.

* 하나 이상의 인수가 `false`로 평가되면 `0`
* 어떤 인수도 `false`로 평가되지 않고, 하나 이상의 인수가 `NULL`이면 `NULL`
* 그 밖의 경우 `1`
  [`Nullable(UInt8)`](/ko/reference/data-types/nullable)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT and(0, 1, -2);
```

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

**NULL이 있는 경우**

```sql title=Query theme={null}
SELECT and(NULL, 1, 10, -2);
```

```response title=Response theme={null}
ᴺᵁᴸᴸ
```

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

도입 버전: v1.1.0

값의 논리 부정을 반환합니다.
인수로 0은 `false`로 간주되며, 0이 아닌 값은 `true`로 간주됩니다.

**구문**

```sql theme={null}
not(val)
```

**인수**

* `val` — 값. [`(U)Int*`](/ko/reference/data-types/int-uint) 또는 [`Float*`](/ko/reference/data-types/float)

**반환 값**

다음을 반환합니다:

* `val`이 `false`로 평가되면 `1`
* `val`이 `true`로 평가되면 `0`
* `val`이 `NULL`이면 `NULL`
  [`Nullable(UInt8)`](/ko/reference/data-types/nullable)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT NOT(1);
```

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

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

도입 버전: v1.1.0

2개 이상의 값에 대한 논리합을 계산합니다.

설정 [`short_circuit_function_evaluation`](/ko/reference/settings/session-settings#short_circuit_function_evaluation)은 단락 평가 사용 여부를 제어합니다.
활성화되면 `val_i`는 `((NOT val_1) AND (NOT val_2) AND ... AND (NOT val_{i-1}))`가 `true`일 때만 평가됩니다.

예를 들어, 단락 평가를 사용하면 쿼리 `SELECT or(number = 0, intDiv(1, number) != 0) FROM numbers(5)`를 실행할 때 0으로 나누기 예외가 발생하지 않습니다.
인수로 전달된 0은 `false`로, 0이 아닌 값은 `true`로 간주됩니다.

**구문**

```sql theme={null}
or(val1, val2[, ...])
```

**인수**

* `val1, val2[, ...]` — 최소 2개 이상의 값 목록입니다. [`Nullable((U)Int*)`](/ko/reference/data-types/nullable) 또는 [`Nullable(Float*)`](/ko/reference/data-types/nullable)

**반환 값**

다음을 반환합니다:

* 하나 이상의 인수가 `true`로 평가되면 `1`
* 모든 인수가 `false`로 평가되면 `0`
* 모든 인수가 `false`로 평가되고 하나 이상의 인수가 `NULL`이면 `NULL`
  [`Nullable(UInt8)`](/ko/reference/data-types/nullable)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT or(1, 0, 0, 2, NULL);
```

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

**NULL 포함**

```sql title=Query theme={null}
SELECT or(0, NULL);
```

```response title=Response theme={null}
ᴺᵁᴸᴸ
```

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

도입 버전: v1.1.0

두 개 이상의 값에 대한 논리적 배타적 논리합을 계산합니다.
입력 값이 2개를 초과하면, 함수는 먼저 처음 두 값을 xor한 다음 그 결과를 세 번째 값과 xor하는 방식으로 계속 계산합니다.
인수로 전달된 0은 `false`로 간주되며, 0이 아닌 값은 `true`로 간주됩니다.

**구문**

```sql theme={null}
xor(val1, val2[, ...])
```

**인수**

* `val1, val2[, ...]` — 값이 2개 이상인 목록입니다. [`Nullable((U)Int*)`](/ko/reference/data-types/nullable) 또는 [`Nullable(Float*)`](/ko/reference/data-types/nullable)

**반환 값**

다음을 반환합니다.

* `1` — 값이 2개일 때, 한 값만 `false`로 평가되는 경우
* `0` — 값이 2개일 때, 두 값이 모두 `false`이거나 모두 `true`로 평가되는 경우
* `NULL` — 입력값 중 하나 이상이 `NULL`인 경우
  [`Nullable(UInt8)`](/ko/reference/data-types/nullable)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT xor(0, 1, 1);
```

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