Как я могу получить данные в нужном поле? - PullRequest
1 голос
/ 27 сентября 2019

C.PREF_FIRST_NAME (предпочтительное имя) C.PATNER_LAST_NAME (фамилия партнера) из таблицы

per_person_names_f

Я пробовал с KNOWN_AS (предпочитаемое поле фамилии, которое присутствует в таблице, но данные пусты.

Как добавить эти два столбца для отчета в облаке Oracle HCM?

1 Ответ

0 голосов
/ 27 сентября 2019

Если вы хотите использовать предпочитаемое имя и имя по умолчанию для фамилии патнера, то:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...