Záznam ze Vzdělávacího okénka HAVIT ze 30. května 2019, kde Jiří Kanda povídal o Ranking functions a Running totals v T-SQL.
Nahrávka je publikována na našem HAVIT YouTube Channelu.
Záznam ze Vzdělávacího okénka HAVIT ze 30. května 2019, kde Jiří Kanda povídal o Ranking functions a Running totals v T-SQL.
Nahrávka je publikována na našem HAVIT YouTube Channelu.
Pokud potřebujeme stránkovat záznamy na straně SQL, můžeme to udělat pomocí jedné z nových funkcí SQL2005:
USE AdventureWorks WITH Rows AS ( SELECT *, ROW_NUMBER() OVER(ORDER BY ProductID) AS RowNumber FROM Production.Product ) SELECT * FROM Rows WHERE RowNumber BETWEEN 101 AND 200
Bohužel se mi to nepodařilo přímo bez CTE v prvním WHERE, tyhle nové funkce jdou zřejmě jenom jako sloupce nebo v ORDER BY.
Další funkce ze skupiny ranking jsou RANK(), DENSE_RANK(), ROW_NUMBER() a NTILE().
Komu se nelíbí Common Table Expression (CTE) s WITH, tak to samozřejmě jde i jako vnořený SELECT:
SELECT Description, Date FROM (SELECT ROW_NUMBER() OVER (ORDER BY Date DESC) AS Row, Description, Date FROM LOG) AS LogWithRowNumbers WHERE Row >= 1 AND Row <= 10