2

我有两个整数列,我希望选择具有特定值对的行。我可以使用什么 SQL 语法?例如,IN如果 IN 支持此语法,则使用它可能看起来像这样:

select * 
 from myTable 
 where value1, value2 in ((2,3), (3,4), (2,5), (3,6))

用 选择那些行 value1 == 2 and value2 == 3 or value1==3 and value2==4 or 2/5 or 3/6

我使用的是专有的 SQL 系统,因此首选基本 SQL。或者,如果没有,在某些标准 SQL 中工作的语句也会很有用。

4

3 回答 3

5
select yourtable.* 
from yourtable
     inner join 
     (
          select 2 as v1, 3 as v2 
          union select 3,4
          union select 2,5
          union select 3,6
     ) pairs
         on yourtable.value1 = pairs.v1
         and yourtable.value2 = pairs.v2
于 2012-10-03T21:15:59.490 回答
1

IN不幸的是,在 SQL Server 中你不能使用这种方式。我认为你最好的选择是像你在代码示例下面那样写出来,或者将你的数据加载到 CTE 或其他东西中,然后加入它。

于 2012-10-03T21:15:34.433 回答
1

同样可以通过使用来实现 VALUES

select table_name.* 
  from table_name tn, 
       (values(2,3), (3,4), (2,5), (3,6) ) as val(v1,v2) 
  where tn.value1 = val.v1 and tn.value2 = val.v2
于 2012-10-04T05:37:18.187 回答