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

Намиране на най-ниската стойност в таблица, по-голяма от определена стойност

SELECT  *
FROM    (
        SELECT  *
        FROM    (
                SELECT  *
                FROM    mytable
                WHERE   value > 10000
                ORDER BY
                        value
                )
        UNION ALL
        SELECT  *
        FROM    (
                SELECT  *
                FROM    mytable
                ORDER BY
                        value DESC
                )
        )
WHERE   rownum = 1

Това едновременно ще използва ефективно индекс на mytable(value) и COUNT(STOPKEY) .

Вижте тази статия в моя блог за подробности за ефективността:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle - Използване на индекс с незадължителни параметри

  2. Връщане на 1 или 0 в конкретна SQL заявка

  3. Не разбирам Collation? (Mysql, RDBMS, набори от символи)

  4. Грешка в Oracle.DataAccess

  5. Какъв е ефектът от поставянето на комит след DML в процедура?