创建oracle查询的问题

时间:2016-07-29 05:57:27

标签: sql 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,value)对的集合

我们必须选择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.

1 个答案:

答案 0 :(得分: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