논리 함수
논리 함수 (Logical Functions)
임의의 숫자 타입 인자에 대해 논리 연산을 수행하는 함수들이에요. 결과로 UInt8의 0 또는 1을 반환하고, 경우에 따라 NULL을 반환해요.
인자로 0은 false로, 0이 아닌 값은 true로 간주해요.
출처: 문서
본문
and
Introduced in: v1.1.0
두 개 이상 값의 논리곱(conjunction)을 계산해요.
short_circuit_function_evaluation 설정으로 단락 평가(short-circuit) 사용 여부를 제어해요. 활성화하면 (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로 간주해요.
구문 (Syntax)
and(val1, val2[, ...])
인자 (Arguments)
val1, val2[, ...]— 최소 두 개 값의 목록.Nullable((U)Int*)또는Nullable(Float*)
반환 값 (Returned value)
반환:
- 최소 하나의 인자가
false로 평가되면0 false로 평가되는 인자가 없고 최소 하나의 인자가NULL이면NULL- 그 외에는
1Nullable(UInt8)
예시 (Examples)
기본 사용 (Basic usage)
SELECT and(0, 1, -2);
0
NULL 포함 (With NULL)
SELECT and(NULL, 1, 10, -2);
\N
not
Introduced in: v1.1.0
값의 논리 부정을 계산해요. 인자로 0은 false로, 0이 아닌 값은 true로 간주해요.
구문 (Syntax)
not(val)
인자 (Arguments)
val— 값.(U)Int*또는Float*
반환 값 (Returned value)
반환:
val이false로 평가되면1val이true로 평가되면0val이NULL이면NULL.Nullable(UInt8)
예시 (Examples)
기본 사용 (Basic usage)
SELECT NOT(1);
0
or
Introduced in: v1.1.0
두 개 이상 값의 논리합(disjunction)을 계산해요.
short_circuit_function_evaluation 설정으로 단락 평가 사용 여부를 제어해요. 활성화하면 ((NOT val_1) AND (NOT val_2) AND ... AND (NOT val_{i-1}))이 true일 때만 val_i가 평가돼요.
예를 들어 단락 평가를 쓰면 SELECT or(number = 0, intDiv(1, number) != 0) FROM numbers(5) 쿼리를 실행할 때 0으로 나누기 예외가 발생하지 않아요. 인자로 0은 false로, 0이 아닌 값은 true로 간주해요.
구문 (Syntax)
or(val1, val2[, ...])
인자 (Arguments)
val1, val2[, ...]— 최소 두 개 값의 목록.Nullable((U)Int*)또는Nullable(Float*)
반환 값 (Returned value)
반환:
- 최소 하나의 인자가
true로 평가되면1 - 모든 인자가
false로 평가되면0 - 모든 인자가
false로 평가되고 최소 하나의 인자가NULL이면NULLNullable(UInt8)
예시 (Examples)
기본 사용 (Basic usage)
SELECT or(1, 0, 0, 2, NULL);
1
NULL 포함 (With NULL)
SELECT or(0, NULL);
\N
xor
Introduced in: v1.1.0
두 개 이상 값의 논리 배타합(exclusive disjunction)을 계산해요. 입력 값이 둘보다 많으면 함수는 먼저 처음 두 값을 xor한 뒤, 그 결과를 세 번째 값과 xor하는 식으로 이어가요. 인자로 0은 false로, 0이 아닌 값은 true로 간주해요.
구문 (Syntax)
xor(val1, val2[, ...])
인자 (Arguments)
val1, val2[, ...]— 최소 두 개 값의 목록.Nullable((U)Int*)또는Nullable(Float*)
반환 값 (Returned value)
반환:
- 두 값에 대해: 한 값이
false로 평가되고 다른 값이 그렇지 않으면1 - 두 값에 대해: 두 값 모두
false로 평가되거나 둘 다true이면0 - 입력 중 최소 하나가
NULL이면NULL.Nullable(UInt8)
예시 (Examples)
기본 사용 (Basic usage)
SELECT xor(0, 1, 1);
0
더 알아보기 (Learn more)
- ClickHouse 함수 목록 전체는 함수 개요를 참고해요.