Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Zachowanie rownum Oracle z funkcją mod

ROWNUM nie jest przypisany, dopóki nie wyślesz zapytania, więc nie będziesz mógł go użyć w WHERE taka klauzula.

Możesz wykonać następujące czynności:

SELECT COUNT(*) 
FROM
(
  select v1, v2, rownum rn
  from Foo 
) f
WHERE mod(rn,2) = 0;

ROWNUM to pozycja wiersza w zestawie wyników i jest oceniana po wybraniu rekordów.

Te typy zapytań nigdy nie będą działać:

WHERE ROWNUM > x
WHERE ROWNUM BETWEEN x AND y

Ale to zadziała

WHERE ROWNUM < x

Ponieważ chcesz ocenić rownum z mod funkcja nie zadziała, ponieważ rownum nie jest dostępna w tym momencie. Dlatego musiałbyś umieścić go w podzapytaniu, aby użyć mod funkcjonować.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyświetlanie wartości LITAGG w komórce na podstawie wartości innej kolumny

  2. tworzenie sekwencji w oracle

  3. SQLT w 12c nie może zebrać statystyk

  4. Indeks dla kolumny dopuszczającej wartość null

  5. Aktualizowanie wiersza z podzapytaniem zwracającym wiele wierszy