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

Оракул. Изберете всички, ако параметърът е нула, в противен случай се връща конкретен проблем с елемента

Просто използвайте coalesce . Това е най-четливият и разбираем начин да напишете това. Тъй като логиката се съдържа в един предикат, е по-лесно да се поддържа и премахва:

select * from job where id = coalesce(:i, id)

Както е поискано, „доказателство“ това всъщност използва индекса:

create table x ( id number(15) null );

create unique index x_pk on x( id );

select id
from   x
where  id = coalesce(:x, id)
; -- Uses index

select id
from   x
where  id = :x or :x is null
; -- Full table scan

План:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изключване на единични кавички в PLSQL

  2. Може ли тестването на натоварването на Visual Studio 2012 да улови броячи на производителност на Linux сървър и база данни на Oracle?

  3. Експортирайте данни в JSON файл в Oracle 11g с помощта на PL/SQL

  4. EXECUTE IMMEDIATE в plsql

  5. Поглед към грешката на Oracle Group-by