반응형
SQL에서 Union All과 함께 Order by를 사용하는 방법은 무엇입니까?
아래에 주어진 SQL 쿼리를 시도했습니다.
SELECT * FROM (SELECT *
FROM TABLE_A ORDER BY COLUMN_1)DUMMY_TABLE
UNION ALL
SELECT * FROM TABLE_B
다음 오류가 발생합니다.
ORDER BY 절은 TOP 또는 FOR XML도 지정되지 않는 한 뷰, 인라인 함수, 파생 테이블, 하위 쿼리 및 공통 테이블 식에서 유효하지 않습니다.
나는 모두 합쳐서 order by를 사용해야합니다. 어떻게해야합니까?
SELECT *
FROM
(
SELECT * FROM TABLE_A
UNION ALL
SELECT * FROM TABLE_B
) dum
-- ORDER BY .....
하지만 Table_A
결과 목록 상단에있는 모든 레코드를 원할 경우 주문에 사용할 수있는 사용자 정의 값을 추가 할 수 있습니다.
SELECT *
FROM
(
SELECT *, 1 sortby FROM TABLE_A
UNION ALL
SELECT *, 2 sortby FROM TABLE_B
) dum
ORDER BY sortby
괄호가 필요하지 않습니다. 직접 정렬 할 수 있습니다.
SELECT *, 1 AS RN FROM TABLE_A
UNION ALL
SELECT *, 2 AS RN FROM TABLE_B
ORDER BY RN, COLUMN_1
OP 직접 응답은 아니지만 OP의 ERROR 메시지에 응답하여 여기에서 지미가 될 것이라고 생각했습니다.
이 모든 답변은 레코드 세트가 검색되고 로트를 정렬하면 전체 ORDER BY를 참조합니다 .
UNION의 각 부분 을 독립적 으로 ORDER BY 하고 여전히 동일한 SELECT에 "조인"하려면 어떻게해야합니까?
SELECT pass1.* FROM
(SELECT TOP 1000 tblA.ID, tblA.CustomerName
FROM TABLE_A AS tblA ORDER BY 2) AS pass1
UNION ALL
SELECT pass2.* FROM
(SELECT TOP 1000 tblB.ID, tblB.CustomerName
FROM TABLE_B AS tblB ORDER BY 2) AS pass2
TOP 1000은 임의의 숫자입니다. 필요한 모든 데이터를 캡처하려면 충분히 큰 숫자를 사용하십시오.
Select 'Shambhu' as ShambhuNewsFeed,Note as [News Fedd],NotificationId
from Notification with(nolock) where DesignationId=@Designation
Union All
Select 'Shambhu' as ShambhuNewsFeed,Note as [Notification],NotificationId
from Notification with(nolock)
where DesignationId=@Designation
order by NotificationId desc
참고 URL : https://stackoverflow.com/questions/15470191/how-to-use-order-by-with-union-all-in-sql
반응형
'Development Tip' 카테고리의 다른 글
Android : 버튼을 길게 클릭-> 작업 수행 (0) | 2020.12.14 |
---|---|
ASP.NET WebApi : WebApi HttpClient를 사용하여 파일 업로드로 멀티 파트 게시를 수행하는 방법 (0) | 2020.12.14 |
RecyclerView 및 SwipeRefreshLayout (0) | 2020.12.14 |
문자열에서만 NUMBER를 얻는 정규식 (0) | 2020.12.13 |
Javascript, Razor 및 Escape 문자. (0) | 2020.12.13 |