문제는 주어진 행의 전후에 총 행 수를 얻는 것입니다 (예 : 기본 키로 식별).SQL : 주어진 행의 전후 행
T-SQL (MSSQL 2008)에서 다음을 시도해 보았습니다. 그것은 올바른 결과를주고 있지만 이것이 최선의 방법인지는 모르겠습니다.
;WITH cte_before AS
(
SELECT ROW_NUMBER() OVER (Order By CustomerId) [Row Number], customerid,
firstName
FROM SalesLT.Customer
),
cte_nums AS
(
SELECT ROW_NUMBER() OVER (Order By CustomerId) [Row Number1]
FROM SalesLT.Customer
)
SELECT [Row Number]-1 [before], MAX([Row Number1]) - [Row Number]
, CustomerID, FirstName
FROM cte_nums, cte_before
GROUP BY [Row Number], CustomerID, FirstName
HAVING CustomerID = 55
우리는 어떻게 T-SQL에서 그것을 향상시킬 수있는 방법은 우리가
그 성명서는'['quote 문자의 비표준 사용으로 인해 다른 DBMS와 함께 실행되지 않을 것이다. 따옴표를 사용하거나 표준'''문자를 사용해야하는 열 이름을 사용하지 않으면 위의 명령문이 Oracle, PostgreSQL, DB2 (그리고 이후의 Firebird 3.0에서도 실행됩니다.) –
예 @a_horse_with_no_name (it – TheVillageIdiot