singleValueOrNull

singleValueOrNull

singleValueOrNull 집계 함수는 x = ALL (SELECT ...) 같은 서브쿼리 연산자를 구현하는 데 사용돼요. 데이터에 고유한 non-NULL 값이 하나뿐인지 확인해요. 고유한 값이 하나뿐이면 그 값을 반환하고, 값이 없거나 서로 다른 값이 두 개 이상이면 NULL을 반환해요.

출처: 문서

본문

singleValueOrNull 집계 함수는 x = ALL (SELECT ...) 같은 서브쿼리 연산자를 구현하는 데 사용돼요. v21.9.0에 도입되었어요.

이 함수는 데이터에 고유한 non-NULL 값이 하나뿐인지 확인해요. 고유한 값이 하나뿐이면 그 값을 반환하고, 값이 없거나 서로 다른 값이 두 개 이상이면 NULL을 반환해요.

구문 (Syntax)

singleValueOrNull(x)

인자 (Arguments)

  • x — Nullable 타입이 될 수 없는 Map, Array, Tuple을 제외한 모든 데이터 타입의 컬럼이에요. Any 타입이에요.

반환 값 (Returned value)

x에 고유한 non-NULL 값이 하나뿐이면 그 고유한 값을 반환해요. 서로 다른 값이 없거나 두 개 이상이면 NULL을 반환해요.

  • Any 또는 NULL 타입이에요.

예시 (Examples)

고유한 값이 하나인 경우

쿼리:

CREATE TABLE test (x UInt8 NULL) ENGINE=Log;
INSERT INTO test (x) VALUES (NULL), (NULL), (5), (NULL), (NULL);
SELECT singleValueOrNull(x) FROM test;

응답:

┌─singleValueOrNull(x)─┐
│                    5 │
└──────────────────────┘

서로 다른 값이 여러 개인 경우

쿼리:

INSERT INTO test (x) VALUES (10);
SELECT singleValueOrNull(x) FROM test;

응답:

┌─singleValueOrNull(x)─┐
│                 ᴺᵁᴸᴸ │
└──────────────────────┘

더 알아보기 (Learn more)