SQL Case с несколькими полями - PullRequest
1 голос
/ 24 сентября 2010

У меня есть 3 поля, которые показывают иерархию в моем приложении.3 поля:

rl.Level1
rl.Level2
rl.Level3

Я пытаюсь показать только последний уровень, который заполнен в моем выводе.

По сути, это то, что я пытаюсь сделать.Если level3 имеет значение null, тогда возвращается level2, но если level2 также имеет значение null, тогда возвращается level1, но если level3 не является нулевым, тогда возвращается level3.

Level1 всегда будет не нулевым.

Это в моем предложении select, поэтому я бы сделал это с помощью описания случая?

Спасибо!

Ответы [ 4 ]

5 голосов
/ 24 сентября 2010

Попробуйте

COALESCE (rl.Level3,rl.Level2, rl.Level1)
1 голос
/ 24 сентября 2010

ВЫБЕРИТЕ КОАЛЕЦ

1 голос
/ 24 сентября 2010

использовать функцию COALESCE http://msdn.microsoft.com/en-us/library/aa258244(SQL.80).aspx

1 голос
/ 24 сентября 2010

использование coalesce

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

Будет возвращено первое ненулевое значение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...