Oracle
 sql >> Database >  >> RDS >> Oracle

Oracolo. Seleziona tutto se il parametro è nullo altrimenti restituisce un problema specifico per l'articolo

Usa semplicemente coalesce . È il modo più leggibile e comprensibile per scrivere questo. Poiché la logica è contenuta in un predicato, è più facile mantenere e rimuovere:

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

Come richiesto, una 'prova' utilizza effettivamente l'indice:

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

Piano: