我有这样的情况我有一张桌子说A。
ID sid RE
-- --- --
1 123 BE
2 123 BE
2 234 FR
3 123 BE
3 156 LU
3 184 FR
如果用户提供sid = 123 and RE = 'BE'
作为输入,我只需要将id设为1.如果用户提供sid = 123 and RE = 'BE' and sid 234
而RE FR我只需要提供2。
我已经构建了像这样的oracle查询
select min(id)as id, sid, re
from a
where sid = 123 and re = 'be'
group by sid, re
;
对于只有一个SID = 123和RE = BE作为输入,它工作正常。但是如果用户通过123 BE,234 FR如何将其传递给上面的查询并且只获得2作为输出?
我想将此查询转换为JPQL并传递sid和re的列表。这是我的意图
答案 0 :(得分:0)
SELECT MAX(t.ID)
FROM
(
SELECT ID, sid, RE
FROM a
WHERE (sid = 123 AND RE = 'BE') OR (sid = 234 AND RE = 'FR')
) t
注意:我认为您打算在OR
子句中WHERE
一起使用您的条件,因为记录不能同时具有两个不同的sid
值。