oracle - 如何获取必填字段中的数据?
问题描述
C.PREF_FIRST_NAME
(首选名字)
C.PATNER_LAST_NAME
(合作伙伴姓氏)来自表
per_person_names_f
我已尝试使用 KNOWN_AS(表中存在的首选姓氏字段,但数据为空。
如何将这两列添加到 Oracle HCM 云中的报告?
解决方案
如果您想使用首选名字并默认为合作伙伴姓氏,则:
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
推荐阅读
- node.js - 我是否需要刷新页面才能获取用户数据?
- python - Numpy:如何在另一个二维数组中找到二维数组的参数
- sql - 使用 count 和 avg 的 SQL 语句
- amazon-web-services - AWS S3 - 安全 URL
- mysql - 如何将 Node App 重新连接到新的 Google Cloud SQL 数据库?
- mitmproxy - 如何使用 mitmproxy 从什么流中获取一些块?
- math - LSTM - Jürgen Schmidhuber 和 Felix Ger 方法
- typescript - 关于 typescript 符号作为对象属性标识符的问题
- python - 分布的 Python 标准误差图
- linux - 如何区分 ZeroMQ 数据包和正常流量