Создайте поле в select с оператором case - PullRequest
0 голосов
/ 29 апреля 2019

Я пытаюсь создать поле, заполненное оператором case, но не думаю, что оно работает.

select 
    case when NVL(rule_id,'') <> '' then 'n' 
    when NVL(rule_id_2, '') <> '' then 'p' else
end as type

Я хочу добавить эти поля в свой набор результатов.

1 Ответ

0 голосов
/ 29 апреля 2019

Использование слияние (или isnull )

select 
    case
      when coalesce(rule_id,'') <> '' then 'n' 
      when coalesce(rule_id_2, '') <> '' then 'p'
      else ''
end as type

Если ваше намерение состоит в том, чтобы тип имел N, если значение rule_id не равно нулю, и P, если значение rule_id_2 не равно нулю, вы можете использовать что-то вроде этого:

select
    case
      when rule_id is not null then 'n'
      when rule_id_2 is not null then 'p'
      else ''
    end as tpye
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...