Замена значения поля DB2 - PullRequest
0 голосов
/ 23 января 2019

У меня есть таблица сотрудников DB2 со столбцом под названием «Имя» - varchar.это не первичный ключ.«Пробел» также считается допустимым значением здесь.в некоторых полях этого столбца есть только пробел.

Теперь мне нужен запрос, который извлекает все значения в этой таблице сотрудников, заменяя «Пробел» на NULL или любое другое значение по умолчанию, например «NoName».

Одна идея, которую я получил, состоит в том, чтобы обрезать значения с помощью функции LTRIM в SELECT, что приведет к «пустой строке», и, если я смогу найти какую-нибудь функцию строковой операции, которая возвращает NULL с «пустой строкой» в качестве ввода, я могу использовать IFNULLCOALESCE, чтобы заменить NULL на 'NoName' в результате.

Но я не мог вспомнить ни одной такой функции.Вы можете помочь?Или есть другой способ сделать это?

Ответы [ 2 ]

0 голосов
/ 23 января 2019
select name, coalesce(nullif(name, ''), 'NoName') name_new
from table (values ' ', null, '', 'a') t(name);

NAME NAME_NEW
---- --------
     NoName
-    NoName
     NoName
a    a
0 голосов
/ 23 января 2019

Вы можете использовать что-то вроде:

Select case when <your column> = ' '    -- replace spaces
              or <your column> is null  -- replace nulls
              or <your column> = ''     -- replace empty strings
       then 'no data'                   -- with string 'no data'
       else <your column>               -- if 'regular name' returns it
       end as '<your column>'           -- gives the column a meaningful title
from yourtable

, когда столбец в «пробел» или NULL или пустая строка возвращает строку «нет данных», иначе он возвращает фактическое значение

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