如何通过JDBC查询Oracle的交集

时间:2018-12-10 12:32:24

标签: java oracle jdbc

我需要从Java中检查某个用户是否至少具有一个组成员身份。在Oracle(顺便说一下,第12个)中,有一个像这样的大能力:

DocId  | Group
-----------------
    1  | Group-A
    1  | Group-E
    1  | Group-Z
    2  | Group-A
    3  | Group-B
    3  | Group-W

在Java中,我具有以下信息:

docId = 1
listOfUsersGroups = { "Group-G", "Group-A", "Group-Of-Something-Totally-Different" }

我见过类似this的解决方案,但这不是我想要的方法。我想做这样的事情(我知道这是不正确的语法)...

SELECT * FROM PERMSTABLE WHERE DOCID = 1 AND ('Group-G', 'Group-A', 'Group-Of-Something-Totally-Different' ) HASATLEASTONE OF Group

...,并且不使用任何临时SQL INSERT。结果应该是,执行此查询后,我知道我的用户匹配,因为他是Group-A的成员。

1 个答案:

答案 0 :(得分:1)

您可以执行此操作(使用IN条件):

SELECT * FROM PERMSTABLE WHERE DocId = 1 AND Group IN 
            ('Group-G', 'Group-A', 'Group-Of-Something-Totally-Different')