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