sql - 在 Apex IG 中使用案例条件的 Oracle SQL 减去列
问题描述
在我的 oracle apex 交互式网格源查询中,我有 2 列。
默认情况下,两者在 DB 中都是浮点数,但需要用逗号分隔,因此使用 to_char。
第一列很简单,第二列是通过大小写得出的。
现在我需要减去这 2 个并将结果放在第三个虚拟列中。
当我编写查询时,例如:
select to_char(KPI_1,'999,999,999,999.99') CURRENT_KPI,
case when dept=1 then to_char(KPI_2,'999,999,999,999.99')
else to_char(KPI_3,'999,999,999,999.99') end as NEW_KPI,
CURRENT_KPI-NEW_KPI RESULT
from KPI_DATA;
所以在这里我得到错误,NEW_KPI 是无效标识符,无论我是在应用程序中验证还是在 oracle 数据库中运行(sql developer 19)
如何编写查询以减去 CURRENT_KPI 和 NEW_KPI 的结果
甲骨文 12c Apex 20.2
解决方案
您可能想要复制该case
语句。你想减去数字而不是字符串
select to_char(KPI_1,'999,999,999,999.99') CURRENT_KPI,
case when dept=1
then to_char(KPI_2,'999,999,999,999.99')
else to_char(KPI_3,'999,999,999,999.99')
end as NEW_KPI,
to_char( kpi_1 - case when dept=1
then kpi_2
else kpi_3
end,
'999,999,999,999.99' ) result
from KPI_DATA;
不过,作为一项规则,我强烈建议您的查询返回一个数字,并在交互式网格的列属性中处理数字格式。这样,您就让显示组件处理如何显示数据,而数据组件处理要获取的数据。
推荐阅读
- javascript - 开玩笑:尝试导入本机模块时出错;无法用 Mock 预防
- sas - SAS:如何重复计算和更改值?
- javascript - 在函数内部使用“this”从视图模型列表中获取视图模型属性
- c - 寻找元素平均值的问题
- c# - WebApi iActionFilter 实现。如何读取自定义控制器属性?
- reactjs - REACT.js 中的多个独特的下拉安全问题
- c - C 释放堆栈上的内存
- c# - C# FolderBrowserDialog - 如何包含共享文件夹
- ruby-on-rails-3 - 设计 gem - 密码中不允许有特殊字符
- java - 执行 jar 文件时出现 NoSuchFileException 错误