본문 바로가기
언어

필터링 후 리턴 없을 때 null 출력하기

by 땅호720 2024. 7. 22.
SELECT num 
FROM MyNumbers 
GROUP BY num 
HAVING COUNT(num) = 1 
ORDER BY num DESC 
LIMIT 1

위와 같은 방법으로는 having으로 필터링 후 도출되는 값이 없을 때, null이 아닌 빈 테이블이 출력됨

 

이럴 때, 테이블을 감싼 후 select로 다시 출력하면 빈테이블이 null 값으로 출력됨

SELECT (SELECT num 
FROM MyNumbers 
GROUP BY num 
HAVING COUNT(num) = 1 
ORDER BY num DESC 
LIMIT 1) AS num

 

 

 

가장 빠른 결과

With cte AS(
SELECT num
FROM MyNumbers 
GROUP BY num
HAVING COUNT(num)=1
)

SELECT MAX(num) as num
FROM cte

cte로 도출되는 값이 없으면, null 출력

'언어' 카테고리의 다른 글

union, union all  (0) 2024.07.26
lead  (0) 2024.07.26
누계 거리 순  (0) 2024.07.18
case when -> having  (0) 2024.07.15
중복 제거  (0) 2024.07.12