Oracle
 sql >> база данни >  >> RDS >> Oracle

Поведение на Oracle rownum с mod функция

ROWNUM не е присвоено, докато не направите заявка, така че няма да можете да го използвате в WHERE клауза като тази.

Можете да направите следното:

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

ROWNUM е позицията на реда в набора от резултати и се оценява, след като записите са избрани.

Тези типове заявки никога няма да работят:

WHERE ROWNUM > x
WHERE ROWNUM BETWEEN x AND y

Но това ще свърши работа

WHERE ROWNUM < x

Тъй като искате да оцените rownum с mod няма да работи, защото rownum не е наличен в този момент. Ето защо ще трябва да го поставите в подзаявка, за да използвате mod функция.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да вмъкна огромен файл в BLOB (Oracle), без да зареждам целия файл в паметта?

  2. TO_char връща стойност на наклонена черта след преобразуване на число в String

  3. Срещна символа =

  4. Филтриране на регистрационни файлове за предупреждения в EM13c

  5. Защо и кога JAXBElement е необходим в JAXB?