Sposób korzystania z ROW_NUMBER() w klauzuli where w bazie danych DB2. Próbowałem poniżej, ale to nie działa:ROW_NUMBER() w DB2
SELECT * FROM CSPAPP.LOCATIONS
WHERE (ROW_NUMBER() OVER(ORDER BY LOCATION)) BETWEEN 100 AND 200
Dało błąd: Nieprawidłowe użycie funkcji zbiorczej lub funkcji OLAP.
Próbowałem też z followiong sposoby:
SELECT (ROW_NUMBER() OVER(ORDER BY LOCATION)) AS RN ,* FROM CSPAPP.LOCATIONS
WHERE RN < 200
SELECT (ROW_NUMBER() OVER(ORDER BY LOCATION)) AS RN ,LOCATION FROM CSPAPP.LOCATIONS
WHERE RN < 200
dziękuję za rozwiązania, ale to jest częściowo obsługujących mój prupose. Próbuję SELECT * FROM ( SELECT numer_wiersza() ponad (kolejność według lokalizacji) jako rn, * FROM cspapp.locations GDZIE rn <200 Ale to nie działa.Czy sugerujesz. – Mandar
"* nie działa *" nie jest poprawnym komunikatem o błędzie DB2. –
oops.Sorry. Błąd: "Znaleziono nieoczekiwany token * po" według lokalizacji "jako rn.Expected Tokens może zawierać:." Nie mogę wprowadzić każdej kolumny, ponieważ w tabeli znajduje się około 600 kolumn. Więc muszę użyć *, aby wybrać wszystkie kolumny za jednym zamachem. –
Mandar