搜索列值对 - SQL服务器

时间:2015-03-11 20:36:12

标签: sql sql-server database

我在数据库中搜索列对的匹配值。

说,表T1有这3列:

(id, this, that)

,查询是

select id from T1 where 
    this = 'aValue' and that = 'bbb'
    OR this = 'CCCC' and that = 'DDD'
    OR this = 'EE' and that = 'EEE'.

有这样的捷径吗?

如果我只搜索一列的值,说“这个”,很容易:

    select id from T1 where this in ('aa', 'bbbb', 'cccc')

我正在使用SQL Server。

TIA。

1 个答案:

答案 0 :(得分:1)

您可以使用VALUES子句构造表值,然后使用内部联接来获取所有匹配项:

SELECT id 
FROM T1 
INNER JOIN (
   VALUES ('aValue', 'bbb'), ('CCCC', 'DDD'), ('EE', 'EEE') 
)  AS C(x,y) 
ON this = C.x AND that = C.y