메인 콘텐츠로 건너뛰기
아래 함수는 임의의 숫자 타입의 인수에 대해 논리 연산을 수행합니다. 반환값은 UInt8 타입의 0 또는 1이며, 경우에 따라 NULL일 수 있습니다. 인수로 전달된 0은 false로, 0이 아닌 값은 true로 간주됩니다.

and

도입 버전: v1.1.0 두 개 이상의 값에 대한 논리곱을 계산합니다. 설정 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로 간주합니다. 구문
and(val1, val2[, ...])
인수 반환 값 다음을 반환합니다.
  • 하나 이상의 인수가 false로 평가되면 0
  • 어떤 인수도 false로 평가되지 않고, 하나 이상의 인수가 NULL이면 NULL
  • 그 밖의 경우 1 Nullable(UInt8)
예시 기본 사용법
Query
SELECT and(0, 1, -2);
Response
0
NULL이 있는 경우
Query
SELECT and(NULL, 1, 10, -2);
Response
ᴺᵁᴸᴸ

not

도입 버전: v1.1.0 값의 논리 부정을 반환합니다. 인수로 0은 false로 간주되며, 0이 아닌 값은 true로 간주됩니다. 구문
not(val)
인수 반환 값 다음을 반환합니다:
  • valfalse로 평가되면 1
  • valtrue로 평가되면 0
  • valNULL이면 NULL Nullable(UInt8)
예시 기본 사용법
Query
SELECT NOT(1);
Response
0

or

도입 버전: v1.1.0 2개 이상의 값에 대한 논리합을 계산합니다. 설정 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로 간주됩니다. 구문
or(val1, val2[, ...])
인수 반환 값 다음을 반환합니다:
  • 하나 이상의 인수가 true로 평가되면 1
  • 모든 인수가 false로 평가되면 0
  • 모든 인수가 false로 평가되고 하나 이상의 인수가 NULL이면 NULL Nullable(UInt8)
예시 기본 사용법
Query
SELECT or(1, 0, 0, 2, NULL);
Response
1
NULL 포함
Query
SELECT or(0, NULL);
Response
ᴺᵁᴸᴸ

xor

도입 버전: v1.1.0 두 개 이상의 값에 대한 논리적 배타적 논리합을 계산합니다. 입력 값이 2개를 초과하면, 함수는 먼저 처음 두 값을 xor한 다음 그 결과를 세 번째 값과 xor하는 방식으로 계속 계산합니다. 인수로 전달된 0은 false로 간주되며, 0이 아닌 값은 true로 간주됩니다. 구문
xor(val1, val2[, ...])
인수 반환 값 다음을 반환합니다.
  • 1 — 값이 2개일 때, 한 값만 false로 평가되는 경우
  • 0 — 값이 2개일 때, 두 값이 모두 false이거나 모두 true로 평가되는 경우
  • NULL — 입력값 중 하나 이상이 NULL인 경우 Nullable(UInt8)
예시 기본 사용법
Query
SELECT xor(0, 1, 1);
Response
0
마지막 수정일 2026년 6월 10일