选择两列包含值组合的所有行

时间:2014-12-11 19:15:22

标签: sql

这是我的架构:

CREATE TABLE T (A CHAR(1), B CHAR(1));
INSERT INTO T (A, B) VALUES('1', '1');
INSERT INTO T (A, B) VALUES('2', '2');
INSERT INTO T (A, B) VALUES('1', '2');

我不想选择列A和B包含值组合的行。例如,假设我想找到组合A = 1,B = 1,A = 2,B = 2,没有其他组合。如果它是单个值,我可以使用IN语句,但是当我尝试这个时:

SELECT * FROM T WHERE A IN ('1', '2') AND B IN ('1', '2')

我回来了所有三行。

如何匹配值的组合?

3 个答案:

答案 0 :(得分:1)

这是您正在寻找使用括号的OR吗?

select * 
from T
where ( A = '1' AND B = '1' ) OR ( A = '2' AND B = '2' )

答案 1 :(得分:1)

您可以查看此查询:

SELECT * FROM T WHERE (A,B) IN (('1', '1'),('2', '2'));

见下面给出的链接

点击here

答案 2 :(得分:0)

你可以使用类似下面的sql

SELECT * FROM T WHERE(A == B)AND A IN('1','2');