Liczba porządkowa pozycji na liście
Super szybkie rozwiązanie sytuacji, w której chcemy uzyskać liczbę porządkową (pozycję) pozycji na liście (czyli row’a w zapytaniu). W bazie istnieje tabelka, w której znajdują się np.: ceny artykułu w różnych sklepach. Chcąc dowiedzieć się, jaką dany sklep zajmuje pozycję względem cen, normalnie trzeba by było pobrać całą listę i przerabiać ją w PHP’ie, albo robić skomplikowane zapytanie. Ale jest inne rozwiązanie.
Z pomocą przychodzi Oracle’owy rownum
:
1
2
3
4
5
6
7
8
SELECT rownum FROM (
SELECT @rownum:=@rownum+1 rownum,
t.*
FROM
(SELECT @rownum:=0) r,
shopStats t
ORDER BY t.lngAvgGrade) t1
WHERE t1.id=132