使用this代码作为基础,我可以使用此示例作为多个条件的AND,使用多个INNER JOIN:
public static void main(String[] args) {
byte[] byteArray = null;
List<Group> groups = Group.getGroupsOfZeros(byteArray);
GroupsBySize groupsBySize = new GroupsBySize(groups);
int index = 12;
int atLeastSize = 5;
Group g = groupsBySize.getNearestGroupOfAtLeastSize(index, atLeastSize);
System.out.println("nearest group is (" + g.x1 + ":" + g.x2 + ") of size " + g.size);
}
我似乎无法解决OR函数所需的连接
答案 0 :(得分:1)
尝试类似......
Declare @Ids varchar(50) = '1,2,3,5,4,6,7,98,234'
, @Levels varchar(50) = '0,3';
SELECT a.*
FROM [AdventureWorks2012].[HumanResources].[Employee] a
Where a.[BusinessEntityID]
IN (
SELECT CAST(RTRIM(LTRIM(Split.a.value('.', 'VARCHAR(100)'))) AS INT) IDs
FROM (
SELECT Cast ('<X>'
+ Replace(@Ids, ',', '</X><X>')
+ '</X>' AS XML) AS Data
) AS t CROSS APPLY Data.nodes ('/X') AS Split(a)
)
OR a.[OrganizationLevel] --<-- You can "OR" or "AND" here
IN (
SELECT CAST(RTRIM(LTRIM(Split.a.value('.', 'VARCHAR(100)'))) AS INT) [Levels]
FROM (
SELECT Cast ('<X>'
+ Replace(@levels, ',', '</X><X>')
+ '</X>' AS XML) AS Data
) AS t CROSS APPLY Data.nodes ('/X') AS Split(a)
)