union 에 order by 를 각각 지정하려고 합니다.
각각의 테이블에 top절과 서브퀴리를 사용하려고 하는데 잘 안되서 문의드립니다.
예를 들어
테이블 TableA, TableB가 ID, value, name으로 구성되어 있을때
Select *
from ( select top 100 percent * from TableA order by id, value, name)
union all
Select *
from ( select top 100 percent * from TableB order by value, name)
로 시도 해봤는데 서브퀴리 절 ' select top 100 percent * from TableB order by value, name'에서 원하는 순서대로 나오지만
Select * from (~) 절 구현 할때 다시 id , value, name 으로 나타는거 같아요..ㅜ
이러할 때 어떻게 해결해야 하나요?! 고수님들 고견 부탁 드립니다.
Comment 1
-
지영아빠
2023.07.20 13:34
여러 방법이 있을 껀데요...
주신 쿼리와 가장 비슷한 케이스로 하면
select * --> 여기서 TB라는 칼럼을 빼면 원하는 결과가 아닐까 싶습니다.
from (
select 'tableA' as TB, * from TableA union all
select 'tableB' as TB, * from TableB
) x
order by TB, id, value, name