我有一張這樣的桌子
| 類別 | 業務日期 | 加載日期 | 地位 |
|---|---|---|---|
| 一種 | 11/1/20 | 12/1/20 | 好的 |
| 乙 | 11/1/20 | 12/1/20 | 好的 |
| C | 11/1/20 | 12/1/20 | 進行中 |
當只有所有狀態值時,我需要檢索行good,如果不inprogress應該檢索任何行
預期輸出:
1 行如下
| 地位 | 業務日期 | 加載日期 |
|---|---|---|
| 好的 | 11/1/20 | 12/1/20 |
uj5u.com熱心網友回復:
要檢索狀態為 Good 的資料,查詢是:
SELECT status, business_date, load_date FROM yourTable WHERE status ='Good';
但是,如果想避免重復值,您的查詢將變為:
SELECT DISTINCT status, business_date, load_date FROM yourTable WHERE status ='Good';
uj5u.com熱心網友回復:
您可以使用:
SELECT Category,
business_date,
load_date,
status
FROM (
SELECT t.*,
COUNT(CASE WHEN status != 'Good' THEN 1 END) OVER () AS num_not_good
FROM table_name t
)
WHERE num_not_good = 0;
其中,對于您的示例資料:
CREATE TABLE table_name (Category, business_date, load_date, status) AS
SELECT 'A', DATE '2020-01-11', DATE '2020-01-12', 'Good' FROM DUAL UNION ALL
SELECT 'B', DATE '2020-01-11', DATE '2020-01-12', 'Good' FROM DUAL UNION ALL
SELECT 'C', DATE '2020-01-11', DATE '2020-01-12', 'Inprogress' FROM DUAL
正如預期的那樣,輸出沒有行,因為有Inprogress一行。
如果你然后使用:
UPDATE table_name SET status = 'Good';
然后再次運行查詢,輸出為:
類別 BUSINESS_DATE LOAD_DATE 地位 一種 20 年 1 月 11 日 20 年 1 月 12 日 好的 乙 20 年 1 月 11 日 20 年 1 月 12 日 好的 C 20 年 1 月 11 日 20 年 1 月 12 日 好的
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/346917.html
標籤:甲骨文
