簡體   English   中英

Oracle SQL - 根據 CASE 表達式結果實現邏輯

[英]Oracle SQL - implement logic based on CASE expression result

我有以下查詢,它返回我在任何列中至少有一個 NULL 的行的百分比:

SELECT
(SUM(CASE WHEN tablea.test IS NULL OR tableb.test IS NULL THEN 1 ELSE NULL END)/7000)*100) "at least one NULL (%)"
FROM tablea
FULL OUTER JOIN tableb
ON
tablea.test = tableb.test
WHERE ROWNUM < 7000;

查詢對我來說很好,我得到了有效的結果。

但是我需要根據我的 SELECT 語句中計算的百分比在 tablec 中做進一步的操作。 如果 NULL 的行百分比低於 30% 我需要在表“tablec”列“resultcol”中插入“YES”字符串,我該如何實現這樣的邏輯?

例如,是否可以將 SELECT 語句結果存儲在一些臨時變量中,該變量將在另一個 SQL 查詢中使用?

您可以使用:

INSERT INTO tablec (resultcol)
SELECT 'YES'
FROM   tablea
       FULL OUTER JOIN tableb
       ON tablea.test = tableb.test
WHERE  ROWNUM < 7000
HAVING COUNT(CASE WHEN tablea.test IS NULL OR tableb.test IS NULL THEN 1 END) 
        < COUNT(*) * 0.3;

db<> 在這里擺弄

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM