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;