comment modifier le résultat à 0 lorsque le résultat est NULL dans l'instruction SQL

J'ai une déclaration choisie, comme ..

select col1, col2, col3 from tbl1 where (conditions) 

S'il n'y a pas de ligne,

Tout ce que je vois c'est ..

 NULL,NULL,NULL 

Ce que je veux get c'est

 0,0,0 

Je sais qu'il y a du sth ..

 select when (condition) then RESULT else 0 end as 'Col1',..... from tbl1 

Mais si je fais cela, je dois vérifier l'état d'everyline ..

Une meilleure idée ??

Essaye ça:

 select isnull(col1,0) from tbl1 

Une autre approche, si vous avez l'intention d'get 1 ligne mais n'en avez pas, vous pouvez utiliser l'approche de la sum de coalesce:

 select coalesce(sum(col1),0) from tbl1 

Un autre, utilisez WITH pour ne pas avoir à réévaluer les lignes lorsque le filtrage ne produit aucun résultat:

 with result as ( select col1, col2, col3 from tbl1 where 1 = 0 -- your condition goes here ) select col1, col2, col3 from result union select 0, 0, 0 where not exists(select * from result) 

Pour ce type de requêtes, vous pouvez utiliser la fonction nvl de sql. Syntaxe donnée ci-dessous ..

 Nvl( null value colum,0) 

exemple – comme si un employé n'obtient pas la comisition alors interroger wl soit ..

 Select nvl( cmsn_pct,0) from employee;