首页 > 解决方案 > 如何获取必填字段中的数据?

问题描述

C.PREF_FIRST_NAME(首选名字) C.PATNER_LAST_NAME(合作伙伴姓氏)来自表

per_person_names_f

我已尝试使用 KNOWN_AS(表中存在的首选姓氏字段,但数据为空。

如何将这两列添加到 Oracle HCM 云中的报告?

标签: oraclereport

解决方案


如果您想使用首选名字并默认为合作伙伴姓氏,则:

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

推荐阅读