Заменить нулевое значение как текст в исходной таблице - PullRequest
0 голосов
/ 22 марта 2019

Я использую Oracle SQL, и вот моя таблица:

ФИЛЬМ (Каталожный номер, формат, название, год, число_дисков, рейтинг, время, жанр)

Если какое-то значение в рейтинге равно нулю, как я могу изменить все нулевое значение на текст NR?

Вот то, что я пытался, но как я могу позволить заголовку столбца NR быть рейтингом вместо (NVL, RATING, 'NR')

SELECT RATING, nvl(RATING,'NR')
FROM FILM
WHERE RATING IS NULL;

RATING        NVL(RATING,'NR
------------- -----------------
              NR
              NR
              NR

Спасибо!

Ответы [ 3 ]

0 голосов
/ 22 марта 2019

ВЫБРАТЬ nvl (рейтинг, 'Nr') рейтинг из фильма

0 голосов
/ 22 марта 2019

Каждому столбцу в вашем результате можно присвоить имя:

SELECT
  rating AS rating_with_nulls,
  NVL(rating, 'NR') AS rating
FROM film
ORDER BY rating_with_nulls;

Это называется псевдонимом столбца.AS является необязательным.

Вы найдете его на диаграммах синтаксиса в документации здесь: https://docs.oracle.com/database/121/SQLRF/statements_10002.htm#SQLRF01702. Найдите «select_list», и вы увидите expr [AS] c_alias.Может потребоваться некоторое время, чтобы привыкнуть к этим диаграммам, но потом они станут действительно полезными.

Иногда не рекомендуется называть результат как столбец.В приведенном выше примере, что если бы у нас было ORDER BY rating?Что будет означать rating?Исходный столбец или результат выражения, где нули заменяются на 'NR'?

NVL кстати, специфичен для Oracle.Стандартная функция SQL для этой ситуации COALESCE.Можно использовать NVL, но всегда полезно знать, что это только Oracle, и что я думаю использовать в другой СУБД.

0 голосов
/ 22 марта 2019

используйте coalesce()

select coalesce(rating,'NR')

ваш столбец рейтинга должен иметь тип данных varchar

или использовать NVL

NVL( string1, replace_with )

Значение, возвращаемое, если строка1является нулевым.

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