[英]How do I exclude multi-line set of data when ONE line of data has a specific value? SQL-ORACLE
希望我不會錯過已經發布的答案,對我有幫助。 如果原諒我,請原諒我。
假設要獲取以下查詢結果,我已將Item表內部連接到Item值上的Pricing表。 我當前的查詢返回類似於以下內容的內容:
Item______Price
Item1_____Price1
Item1_____Price2
Item1_____Price3
Item2_____Price2
Item2_____Price3
Item3_____Price1
Item3_____Price2
Item3_____Price3
我只想返回商品2的SET(兩行),因為該商品不存在Price1。 由於Item1和Item3包含上面帶有Price1的行,因此我想排除這些項目的所有行。 我想后退
Item______Price
Item2_____Price2
Item2_____Price3
我在腳本上嘗試了以下操作,但未返回任何結果。 我不確定自己在做什么錯,在編寫和理解這些東西時我還是很環保。
並且不存在(SELECT * FROM sqlmgr.PRICE P2 AND(P2.PRICE ='PRICE1')
您需要一個用於NOT EXISTS
的相關子查詢:
NOT EXISTS (SELECT 1
FROM sqlmgr.PRICE P2
WHERE p2.ITEM = p.ITEM AND P2.PRICE = 'PRICE1'
)
您的版本不返回任何內容,因為其中包含PRICE1
記錄-如果沒有相關段( p2.ITEM = p.ITEM
),它將檢查整個表,而不只是檢查給定行上的相關項。
請注意, p
是外部查詢中表的別名,無論如何。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.