[英]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.