簡體   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