2012-09-06 62 views
0

我们的遗留系统有表T与复合关键字-two列AB,我需要搜索与我的标准匹配的行,即A == x AND B == y将复合键列表作为参数传递给查询?

但对于一套(x,y) touples像{(x1,y1), (x2,y2), (x3,y3)}

如果我做X = {x1,x2x3}Y = {y1,y2,y3}

select A,B,value from T where A in (X) and B in (Y) 

我的结果可能包含行x1, y2, valueN,但是这是不正确的

我不对于touples数有上限,我需要将它作为Java代码的参数传递。

我的服务器是MS SQL 2008

貌似表值参数可能是答案,但它尚未通过JDBC驱动程序

支持(希望这是不够清楚)

回答

0

一劈你可以使用是值转换为字符串,然后将它们连接起来

+0

问题是怎么做,如果没有破解,但由于为这个想法 – Hurda

0

有几种解决方案:

使用声明检查组合:

SELECT A, B, value FROM T WHERE A = X1 AND B = Y1 OR A = X2 AND B = Y2 

使用事先准备好的声明,并单独查询每个组合(注:使用Java 7的try-与资源在这里)

相关问题