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 )