Oracle: Показать специальный текст, если поле пустое - PullRequest
5 голосов
/ 01 апреля 2011

Я хотел бы написать выбор, где я показываю значение поля, как обычно, за исключением случаев, когда поле является нулевым.Если это ноль, я хотел бы показать специальный текст, например, «Поле ноль».Как мне лучше всего это сделать?

// Oracle newbie

Ответы [ 3 ]

11 голосов
/ 01 апреля 2011

Мне нравится использовать функцию COALESCE для этой цели.Он возвращает первое ненулевое значение из заданных аргументов (поэтому вы можете протестировать более одного поля за раз).

SELECT COALESCE(NULL, 'Special text') FROM DUAL

Так что это также будет работать:

SELECT COALESCE(
   First_Nullable_Field, 
   Second_Nullable_Field, 
   Third_Nullable_Field, 
   'All fields are NULL'
) FROM YourTable
4 голосов
/ 01 апреля 2011

Просто вставьте функцию NVL PL / SQL в ваш запрос

ВЫБЕРИТЕ NVL (SOMENULLABLEFIELD, 'Поле пустое') SOMENULLABLEFIELD FROM MYTABLE;

Подробнее здесь: http://www.techonthenet.com/oracle/functions/nvl.php

3 голосов
/ 01 апреля 2011

Вы также можете использовать DECODE:

select value, decode(value, NULL, 'SPECIAL', value) from 
  (select NULL value from dual
   union all
   select 2 value from dual
  )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...