row_number 함수 사용

2171 단어 row_number
지난 토요일, 전 선생님 은 ASP. NET 데이터 컨트롤 사용자 정의 페이지 를 강의 할 때 SQL 의 강력 한 기능 을 가 진 함수 row 를 소개 해 주 셨 습 니 다.number。지금 이 함수 의 사용 방법 을 복습 하고 있 습 니 다.
row_number 함수 의 문법: rownumber() over( [ ] < order_by_clause > )
두 매개 변수의 구체 적 인 의 미 는 다음 과 같다.

FROM 자구 생 성 결과 집합 을 row 에 그 어 넣 었 습 니 다.number 함수 의 파 티 션
일반 중 소형 데이터베이스 의 데 이 터 를 디스크 파 티 션 아래 에 두 기 때문에 일반적으로 이 매개 변 수 는 설정 하지 않 아 도 됩 니 다.

ROW 를NUMBER 값 을 파 티 션 의 줄 에 할당 하 는 순서
전체 함수 의 역할 은 결과 집합 구역 내 줄 의 시리 얼 번 호 를 되 돌려 주 는 것 입 니 다. 각 구역 의 첫 줄 은 1 부터 시작 합 니 다.쉽게 말 하면 구역 안의 모든 기록 을 위해 1 부터 번 호 를 매 기 는 것 이다.
데이터베이스 에서 우 리 는 그것 을 편리 하 게 이용 하여 조회 할 수 있다.
다음 예 는 연초 부터 지금까지 의 매출 액 에 따라 AdventureWorks 중 판매원 ROW_NUMBER 으로 돌아 갈 것 이다.
USE AdventureWorks

GO

SELECT c.FirstName, c.LastName, ROW_NUMBER() OVER(ORDER BY SalesYTD DESC) AS 'Row Number', s.SalesYTD, a.PostalCode

FROM Sales.SalesPerson s JOIN Person.Contact c on s.SalesPersonID = c.ContactID

JOIN Person.Address a ON a.AddressID = c.ContactID

WHERE TerritoryID IS NOT NULL AND SalesYTD <> 0

 
다음 예제 에 서 는 줄 번호 50 에서 60 (포함) 의 줄 로 돌아 가 OrderDate 로 정렬 합 니 다.
USE AdventureWorks;

GO

WITH OrderedOrders AS

(SELECT SalesOrderID, OrderDate,

ROW_NUMBER() OVER (order by OrderDate)as RowNumber

FROM Sales.SalesOrderHeader ) 

SELECT * 

FROM OrderedOrders 

WHERE RowNumber between 50 and 60

 
 
 

좋은 웹페이지 즐겨찾기