Postgres - Tout sélectionner si le paramètre donné est nul

Nov 05 2020

j'ai une table avec les colonnes ci-dessous

name varchar(250)
type varchar(25)

existe-t-il un moyen pour moi de structurer une requête pour renvoyer tous les enregistrements si le paramètre de type est nul?

Je suis conscient que je peux faire quelque chose comme

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

ce qui me donnera tous les enregistrements de type «a» si je donne un paramètre vide.

Mais que faire si je veux récupérer tous les enregistrements si param est nul?

Réponses

nbk Nov 05 2020 at 02:47

Utilisez l'espace réservé pour les chaînes:

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

Personnellement, je construirais la requête dans l'application, en ajoutant uniquement les paramètres que l'utilisateur a spécifiés.

À défaut, essayez quelque chose comme ceci:

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