C.PREF_FIRST_NAME
(首选名字)
表
C.PATNER_LAST_NAME
(合作伙伴姓氏)
per_person_names_f
我尝试使用KNOWN_AS(表中存在首选姓氏字段,但数据为空。
如何在Oracle HCM云中添加这两列以进行报告?
答案 0 :(得分:0)
如果您想使用首选的名字,并且默认使用合作伙伴的姓氏,那么:
NVL(C.PREF_FIRST_NAME, NVL(C.PATNER_LAST_NAME, ''))
如果您想同时拥有两者,那么:
NVL(C.PREF_FIRST_NAME, '') || ' ' || NVL(C.PATNER_LAST_NAME, '')
编辑
我已经看到您的评论,说您不小心张贴了此答案,因此,您尝试了
NVL(ppnf.known_as Preferred_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 Preferred_First_Name, NVL(ppnf.Previous_Last_name, '') as Patner_Last_name, NVL(ppnf.known_as, NVL(ppnf.Previous_Last_name, '')) as Name