Wydobycie danych bez użycia LIMIT

0

Witam
Potrzebuje sposobu jak wydobyć top wierszy bez wykorzystania słowa kluczowego LIMIT w Mysqlu, tak aby zapytanie było zgodne ze standardem SQL 92. Czy jest w ogóle taka możliwość ? Mam tabelę z kolumną integer i chce wydobyć maksymalne n wartości. Kombinuje by szukać jakoś przy wykorzystaniu słowa kluczowego IN, może usuwać maksymalne wiersze i tak w jakiejś pętli dać zapytanie. Jednakże to droga raczej okrężna, chciałbym to zrobić możliwie jak najprościej.

0

Jak naprościej się nie da...
Ale da się mniej więcej w taki sposób:

SELECT id, ..., FROM tabela t ORDER BY id WHERE 4=(SELECT Count(*) FROM tabela WHERE id<=t.id)
0

@Marcin.Miga
pomysł dobry bo gwarantuje uzyskanie prawidłowego rezultatu, pomijam kilka błędów składniowych , odpowiedź pewnie była pisana na "sucho" , bez weryfikacji :)
Ale jest skuteczny "czasowo" tylko przy niewielkiej liczbie wierszy w tabeli , bo przy dużej liczbie wierszy trzeba będzie czekać wieki na odpowiedź.
Zapuściłem sobie testowo takie zapytanie na tabeli z ok 1 mln wierszy i czekam już ponad 30 min na odpowiedź, może doczekam się do rana :)
W sumie postawiony problem tylko to "sztuka dla sztuki" , bo po to właśnie są na to gotowe narzędzia , czyli klauzule "LIMIT" , "FIRST", lub jeszcze inne, w zależności od silnika bazy danych , aby ich sensownie używać i nie komplikować prostych problemów

1 użytkowników online, w tym zalogowanych: 0, gości: 1