반응형
SQL Server에서 ORDER BY 및 UNION 조합
테이블의 첫 번째 레코드와 테이블의 마지막 레코드를 하나의 결과 세트로 가져오려면 어떻게 해야 합니까?
이 쿼리 실패
SELECT TOP 1 Id,Name FROM Locations ORDER BY Id
UNION ALL
SELECT TOP 1 Id,Name FROM Locations ORDER BY Id DESC
도와드릴까요?
너의 것을 둬라.order by그리고.top문을 하위 항목으로:
select first.Id, first.Name
from (
select top 1 *
from Locations
order by Id) first
union all
select last.Id, last.Name
from (
select top 1 *
from Locations
order by Id desc) last
select * from (
SELECT TOP 1 Id,Name FROM Locations ORDER BY Id) X
UNION ALL
SELECT TOP 1 Id,Name FROM Locations ORDER BY Id DESC
SQL Server 2005 이상에서 작업하는 경우:
; WITH NumberedRows as (
SELECT Id,Name,
ROW_NUMBER() OVER (ORDER BY Id) as rnAsc,
ROW_NUMBER() OVER (ORDER BY Id desc) as rnDesc
FROM
Locations
)
select * from NumberedRows where rnAsc = 1 or rnDesc = 1
이것이 원래 쿼리와 같지 않은 유일한 위치는 테이블에 행이 하나만 있는 경우입니다(이 경우 내 대답은 한 행을 반환하고, 당신의 대답은 같은 행을 두 번 반환합니다).
SELECT TOP 1 Id as sameColumn,Name FROM Locations
UNION ALL
SELECT TOP 1 Id as sameColumn,Name FROM Locations ORDER BY sameColumn DESC
언급URL : https://stackoverflow.com/questions/5551064/combining-order-by-and-union-in-sql-server
반응형
'programing' 카테고리의 다른 글
| 연속적이지 않은 커밋 두 개를 제거하려면 어떻게 해야 합니까? (0) | 2023.07.07 |
|---|---|
| CSRF 보호가 Spring Security 6과 함께 작동하지 않음 (0) | 2023.07.07 |
| Oracle SQL - 열의 상위 5개 값을 검색하는 방법 (0) | 2023.07.07 |
| TorothyGit로 Git 분기를 삭제하려면 어떻게 해야 합니까? (0) | 2023.07.07 |
| 두 NS 날짜 사이의 빠른 날짜 (0) | 2023.07.07 |