sql >> Databáze >  >> RDS >> Sqlserver

Jak mohu použít ROW_NUMBER()?

K první otázce, proč to prostě nepoužít?

SELECT COUNT(*) FROM myTable 

získat počet.

A u druhé otázky je primárním klíčem řádku to, co by se mělo použít k identifikaci konkrétního řádku. Nezkoušejte k tomu použít číslo řádku.

Pokud jste ve svém hlavním dotazu vrátili Row_Number(),

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

Když se pak budete chtít vrátit o 5 řádků zpět, můžete vzít číslo aktuálního řádku a pomocí následujícího dotazu určit řádek s aktuálním řádkem -5

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


  1. Duplikování řádků na základě hodnoty sloupce v každém řádku

  2. Jak nejlépe spravovat historické vyhledávací hodnoty v databázi?

  3. Zápis do databáze MySQL s pandami pomocí SQLAlchemy, to_sql

  4. Jak zobrazit serverové řazení v SQL Server (T-SQL)