2010-09-24 4 views
1

J'ai 3 champs qui montre une hierachie dans mon application. Les 3 champs sont les suivants:SQL Case avec plusieurs champs

rl.Level1 
rl.Level2 
rl.Level3 

J'essaye de montrer seulement le dernier niveau qui est rempli dans ma production.

Fondamentalement, c'est ce que j'essaie de faire. Si le niveau 3 est nul alors retourne le niveau 2 mais si le niveau 2 est aussi nul alors retourne le niveau 1 mais si le niveau 3 n'est pas nul alors retourne le niveau3.

Le niveau 1 sera toujours non nul.

Ceci est dans ma clause select, est-ce que je le ferais avec une déclaration de cas?

Merci!

Répondre

5

Essayez

COALESCE (rl.Level3,rl.Level2, rl.Level1) 
+0

Brillant. J'aurais aimé pouvoir voter pour ma solution après vous avoir signalé. – Brad

+1

La séquence des champs nommés ici est très importante. – DOK

+0

Awesome fonctionne parfaitement! – user380432

1

utilisation coalesce

select coalesce(rl.Level3,rl.Level2,rl.Level1) as SomeCol 
from SomeTable 

Il retourne la première valeur non nulle

1

SELECT COALESCE (rl.Level3, rl. Level2, rl.Level1)

+0

Fonctionne parfaitement grâce! – user380432