表中的C.PREF_FIRST_NAME
(首选名字) C.PATNER_LAST_NAME
(合作伙伴姓氏)
per_person_names_f
我尝试使用KNOWN_AS(首选姓氏字段),该字段存在于表中,但数据为空。
如何在Oracle HCM云中添加这两列以进行报告?
发布于 2019-09-27 18:39:03
如果您要使用首选名字并默认为合作伙伴姓氏,则:
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
https://stackoverflow.com/questions/58131116
复制相似问题