union 처리과정이 궁금합니다! 0 2 2,016

by silverg [DB 기타] postgresql union [2023.01.04 17:15:22]


[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처리과정 순서가 궁금합니다!

by pajama [2023.01.04 17:56:19]

union은 중복건이 제거됩니다. 그리고 원래의 순서를 보장하지 않습니다.

명시적으로 order by를 사용하는 것이 좋습니다.

https://www.postgresql.org/docs/current/queries-union.html


by 마농 [2023.01.05 09:40:43]

내부적인 수행 로직을 이해하려 하기 보다는
"정렬 구문이 없다면 정렬 결과를 보장하지 않는다" 라고 이해하시는 게 좋을 듯 합니다.
내부적인 수행 로직은 DB 종류에 따라 버전에 따라 수행 조건에 따라 다양한 형태로 수행이 될 것입니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입