[1번쿼리]
SELECT 4
UNION
SELECT 2
UNION
SELECT 4
;
결과-- 2
-- 4
[2번쿼리]
SELECT 2
UNION
SELECT 4
UNION
SELECT 4
;
결과-- 4
-- 2
두 쿼리의 결과가 왜 다르게나오는지 이해가 안됩니다...
1번 union 후 order by가 되고 마지막 union값이 아래에 붙어서 나와야하는것 아닌가요??
union처리과정 순서가 궁금합니다!
union은 중복건이 제거됩니다. 그리고 원래의 순서를 보장하지 않습니다.
명시적으로 order by를 사용하는 것이 좋습니다.
https://www.postgresql.org/docs/current/queries-union.html
내부적인 수행 로직을 이해하려 하기 보다는
"정렬 구문이 없다면 정렬 결과를 보장하지 않는다" 라고 이해하시는 게 좋을 듯 합니다.
내부적인 수행 로직은 DB 종류에 따라 버전에 따라 수행 조건에 따라 다양한 형태로 수행이 될 것입니다.