Oracle - Как изменить значение поля на основе определенного значения - PullRequest
1 голос
/ 11 декабря 2019

У меня есть объединенное поле полного имени:

CONCAT(CONCAT(CONCAT(u3.LAST_NAME, ', '), u3.FIRST_NAME), NVL(u3.MIDDLE_NAME, '')) AS TEAMLEAD_NAME

Если 3 поля имени являются нулевыми, я хочу, чтобы запись ничего не показывала, т.е. ''.

Но когда все 3 поля являются нулевыми, запись показывает , (из части last_name).

Я попытался поместить NVL(x, '') вокругвсего поля, вокруг всех 3 отдельных полей имени и т. д., но я все еще получаю ,.

Каков наилучший способ написать это, чтобы я получил пустое поле, возвращаемое, если все3 поля имени являются нулевыми?

Спасибо

1 Ответ

2 голосов
/ 11 декабря 2019

Один способ сделать это быстро, хотя условия могут быть улучшены:

CASE
    WHEN u3.LAST_NAME IS NULL AND u3.FIRST_NAME IS NULL AND u3.MIDDLE_NAME IS NULL THEN NULL
    ELSE CONCAT(CONCAT(CONCAT(u3.LAST_NAME, ', '), u3.FIRST_NAME), NVL(u3.MIDDLE_NAME, '')) 
END "TEAMLEAD_NAME"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...