본문으로 바로가기
본문으로 바로가기

singleValueOrNull

singleValueOrNull

도입 버전: v21.9

집계 함수 singleValueOrNullx = ALL (SELECT ...)과 같은 서브쿼리 연산자를 구현하는 데 사용됩니다. 이 함수는 데이터에 NULL이 아닌 서로 다른 값이 하나만 존재하는지 확인합니다. 서로 다른 값이 정확히 하나라면 그 값을 반환합니다. 값이 하나도 없거나 둘 이상 존재하면 NULL을 반환합니다.

구문

singleValueOrNull(x)

인수

  • x — Map, Array, Tuple을 제외한 임의의 데이터 타입의 컬럼로, Nullable(널 허용) 타입일 수 없습니다. Any

반환 값

x에 단 하나의 고유한 NULL이 아닌 값만 존재하는 경우 해당 고유 값을 반환합니다. 서로 다른 값이 하나도 없거나 2개 이상인 경우 NULL을 반환합니다. Any 또는 NULL

예시

단일 고유 값

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)─┐
│                 ᴺᵁᴸᴸ │
└──────────────────────┘