2013-08-16 1 views
0

я два столбца с именем ПНО и РНО оба VARCHAR, который имеет порядковый номер и теперь мое требованиеЯ извлекая два столбца с помощью оператора выбора и выбирая их в одну колонку

если РНО не является нулевым, он должен печатать Фактический сгенерированный, Если его нет, то его Прогноз генерируется.

если ПНО не равно нулю, то он должен напечатать Согласовано еще прогноз сгенерированного.

мой запрос:

select 
     case 
     when (pno!=null) then 'Reconciled' 
     when (pno=null) then 'Forecast1 Generated' 
     when (rno=null) then 'Forecast Generated' 
     when (rno!=null) then 'Actual Generated' 
     end as Status 
from tablexyz 

Когда я его выполнения я только получить либо PNO или РНО случае заявления результат set.my ожидается из пут должен вернуть все утверждения регистра. Я не мог использовать и в случае условия оператора, так как мне нужны все записи. Я запускаю это на Dbvisualizer.

Заранее спасибо.

ответ

0

Вы должны использовать pno is not null вместо pno!=null в SQL.SQL использует три значной логики, и pno!=null является UNKNOWN, которая не является истинным, ни ложным, но так как это не так, дело не принимается.

Так что ваше утверждение должно выглядеть

select 
     case 
     when (pno is not null) then 'Reconciled' 
     when (pno is null) then 'Forecast1 Generated' 
     when (rno is null) then 'Forecast Generated' 
     when (rno is not null) then 'Actual Generated' 
     end as Status 
from tablexyz 
+0

извините за упоминание, что поздно я использую DbVisualizer –

Смежные вопросы