2016-07-29 96 views
3

我遇到了下面的查詢問題。創建oracle查詢的問題

id| prop_id| obj_id| value| 
1   7  2  1 
2   8  2  1 
4   7  5  7 
5   8  5  12 

輸入參數到查詢是:

  • 的(PROP_ID,值)對採集

我們必須選擇其prop_idvalues匹配輸入參數的記錄:但有也是一種約束,結果記錄的obj_id必須相同。如果不相同,結果必須爲空。否則它必須返回obj_id

比方說,輸入參數爲:(7,1)和(8,12)。

現在有兩個記錄,這樣的價值觀:第一個和最後。 然而,第一個記錄的是obj_id 2和第二記錄的obj_id是5。因此,其結果必然是空的,因爲2!= 5。

又如:

比方說,輸入參數爲:(7,7)和(8,12)。

現在有兩個記錄,這樣的價值觀:最後兩個記錄。首先 obj_id是5和第二記錄的obj_id也是5.因此,其結果必然是5

回答

3

試試這個

select obj_id from table 
where (prop_id=7 and value=7) or (prop_id=8 and value=12) 
group by obj_id having count(*)=2 and count(distinct object_id)=1 
+0

謝謝,但我有問題。這是輸出此查詢後,我得到:ORA-00920:無效的關係運算符 –

+0

這是我的問題:「從COMP_INFO.OBJECT_VALUES 選擇OBJECT_ID其中(PROPERTY_ID,VALUE_INT)在(7,7)或(PROPERTY_ID,VALUE_INT)在(8,12) 組通過OBJECT_ID具有計數(*)= 2和計數(不同的OBJECT_ID)= 1「 –

+0

好的。查看編輯後的查詢。這應該很好 – Madhivanan