Если вы хотите использовать предпочитаемое имя и имя по умолчанию для фамилии патнера, то:
NVL(C.PREF_FIRST_NAME, NVL(C.PATNER_LAST_NAME, ''))
Если вы хотите иметь оба, то:
NVL(C.PREF_FIRST_NAME, '') || ' ' || NVL(C.PATNER_LAST_NAME, '')
РЕДАКТИРОВАТЬ
Я видел ваш комментарий, который вы случайно опубликовали в качестве редактирования этого ответа, поэтому вы попытались
NVL(ppnf.known_as Preffered_First_Name, NVL(ppnf.Previous_Last_name Patner_Last_name, ''))
, но получили ошибку юридического идентификатора.Ключевое слово as
переименовывает поле в выделении.Выбор начинается с ключевого слова select
, и это предложение состоит из полей, разделенных запятыми, например
select f1, f2, f3, f4
...
Вы можете переименовать поле следующим образом:
select f1, f2, f3 as fancyfield, f4
...
однако вы можететолько переименовать поле.Если у вас есть
select f1, f2, nvl(somevalue, nvl(someothervalue, '')), f4
...
, тогда nvl(somevalue, nvl(someothervalue, ''))
является полем, и вы можете переименовать его как
select f1, f2, nvl(somevalue, nvl(someothervalue, '')) as fancyfield, f4
...
, но вы не можете переименовать параметр функции как поле, например nvl(somevalue as fancyfield, nvl(someothervalue as anotherfancyfield, ''))
, потому что переименование поля имеет целью гарантировать, что имена полей вашего результирующего набора, или, в результате отношения, если вы хотите, имеют имена полей, которые вы предпочитаете.Однако параметр, который вы передаете функции, не будет полем в наборе результатов, так как он является параметром, который вы используете в качестве сырья для вычисления поля.Из вашей попытки кажется, что вы хотите получить то, что вам нужно, зная, что это было.Если это так, то вы можете добиться этого следующим образом:
NVL(ppnf.known_as, '') as Preffered_First_Name, NVL(ppnf.Previous_Last_name, '') as Patner_Last_name, NVL(ppnf.known_as, NVL(ppnf.Previous_Last_name, '')) as Name