繁体   English   中英

Oracle 案例报表查询

[英]Oracle Case Statement Query

我正在处理 Oracle 查询以查找是否安装了诊断包。 查询工作正常。

Select case when currently_used = 'TRUE' then 1
else 0
end DIAGNOSTICS_package
from dba_feature_usage_statistics
where name like '%Diagnostic Pack%'
and CURRENTLY_USED = 'TRUE'

在 Output 我需要添加另一个安装的列。 因此,如果 current_used = 'TRUE' 我需要 output 显示如下。

DIAGNOSTICS_package INSTALLED
1                   YES

我在 case 语句中遇到了 INSTALLED 列的问题。 请指教。

谢谢

您的问题的最简单答案是,只需为第二列添加另一个 CASE 表达式:

Select case when currently_used = 'TRUE' then 1
else 0
end DIAGNOSTICS_package,
case when currently_used = 'TRUE' then 'YES' else 'NO' end INSTALLED
from dba_feature_usage_statistics
where name like '%Diagnostic Pack%'
and CURRENTLY_USED = 'TRUE'

我真的不明白为什么你想要两列以不同的方式告诉你同样的事情。

我也不明白为什么你需要 CASE 语句,因为你有and CURRENTLY_USED = 'TRUE'作为查询条件的一部分。

但也许在更大的背景下,这些事情是有意义的。

根据您的where子句,您不需要case表达式:

Select 1 as DIAGNOSTICS_package,
       'YES' as INSTALLED
from dba_feature_usage_statistics
where name like '%Diagnostic Pack%' and
      CURRENTLY_USED = 'TRUE'

您已经在CURRENTLY_USED = 'TRUE'上进行过滤。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM