2017-05-04 37 views
1

對於防爆:如何顯示在子句中不匹配的所有值?

MY_TABLE 
COL1->'P1','P2','P3' 

輸出應該顯示P4,P5

我想:

select col1 from my_table where col1 not in ('p4','p5'); 
+0

從my_table中選擇col1,其中col1不在('p1','p2','p3');表應該有p4和p5的值。 –

+0

實際上我有一個從p1到p5的範圍值。我想顯示那些不在列中的值。 – Dualcoder

+0

如果它的數值可以在兩者之間使用。 –

回答

1

理想情況下,你應該有一個取值範圍在適當的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

相關問題