Postgres: seleziona tutto se il parametro specificato è nullo

Nov 05 2020

ho una tabella con le colonne sottostanti

name varchar(250)
type varchar(25)

c'è un modo per me di strutturare una query per restituire tutti i record se il parametro di tipo è null?

Sono consapevole di poter fare qualcosa di simile

select * from tbl where type = Coalesce(@param, 'a');

che mi darà tutti i record di tipo "a" se fornisco un parametro vuoto.

Ma cosa succede se voglio recuperare tutti i record se param è nullo?

Risposte

nbk Nov 05 2020 at 02:47

Usa il segnaposto per le stringhe:

select * from tbl where type LIKE Coalesce(@param, '%');
PhillW. Nov 05 2020 at 18:33

Personalmente, costruirei la query nell'applicazione, aggiungendo solo quei parametri che l'utente ha specificato.

In caso contrario, prova qualcosa di simile:

select field1, field2, field3, ... 
from table1 
where ( type = @param or @param is null )