如何显示在子句中不匹配的所有值?
问题描述:
对于防爆:如何显示在子句中不匹配的所有值?
MY_TABLE
COL1->'P1','P2','P3'
输出应该显示P4,P5
我想:
select col1 from my_table where col1 not in ('p4','p5');
答
理想情况下,你应该有一个取值范围在适当的SQL表。缺乏这一点,你可以使用动态CTE来保存范围:
WITH cte AS (
SELECT 'p1' AS col1 FROM dual UNION ALL
SELECT 'p2' FROM dual UNION ALL
SELECT 'p3' FROM dual UNION ALL
SELECT 'p4' FROM dual UNION ALL
SELECT 'p5' FROM dual
)
SELECT t1.col1
FROM cte t1
LEFT JOIN my_table t2
ON t1.col1 = t2.col1
WHERE t2.col1 IS NULL
+0
非常感谢您。 – Dualcoder
从my_table中选择col1,其中col1不在('p1','p2','p3');表应该有p4和p5的值。 –
实际上我有一个从p1到p5的范围值。我想显示那些不在列中的值。 – Dualcoder
如果它的数值可以在两者之间使用。 –