sql >> Databasteknik >  >> RDS >> Sqlserver

Hur använder jag ROW_NUMBER()?

För den första frågan, varför inte bara använda?

SELECT COUNT(*) FROM myTable 

för att få räkningen.

Och för den andra frågan är den primära nyckeln för raden vad som ska användas för att identifiera en viss rad. Försök inte använda radnumret för det.

Om du returnerade Row_Number() i din huvudfråga,

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

När du sedan vill gå 5 rader tillbaka kan du ta det aktuella radnumret och använda följande fråga för att bestämma raden med nuvarande rad -5

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


  1. Returnera bara de numeriska värdena från en PostgreSQL-databaskolumn

  2. MySQL-fråga GRUPPER EFTER dag/månad/år

  3. Hur man importerar en DBF-fil i SQL Server

  4. Lås Oracle-databasen innan du kör skripten Delete/Load data