Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да използвам ROW_NUMBER()?

За първия въпрос, защо просто не използвате?

SELECT COUNT(*) FROM myTable 

за да получите броя.

И за втория въпрос, първичният ключ на реда е какво трябва да се използва за идентифициране на конкретен ред. Не се опитвайте да използвате номера на реда за това.

Ако сте върнали Row_Number() в основната си заявка,

SELECT ROW_NUMBER() OVER (Order by Id) AS RowNumber, Field1, Field2, Field3
FROM User

След това, когато искате да се върнете 5 реда назад, можете да вземете номера на текущия ред и да използвате следната заявка, за да определите реда с currentrow -5

SELECT us.Id
FROM (SELECT ROW_NUMBER() OVER (ORDER BY id) AS Row, Id
     FROM User ) us 
WHERE Row = CurrentRow - 5   


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2016:Създайте вход

  2. Изявление RAISERROR на SQL Server с прости примери

  3. SQL Server Resumable Index:Добре ли е за вас?

  4. Как да изпращам имейл от SQL Server?

  5. Какво е уникално ограничение в SQL Server - SQL Server / TSQL урок, част 95