2015-03-11 3 views
0

Я ищу базу данных для сопоставления значений пары столбцов.поиск по парам значений столбцов - сервер SQL

говорят, таблица 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.

+3

Нет, нет хороших ярлыки - вы можете concatonate значения вместе и использовать 'в' , но вы теряете какие-либо преимущества индексов в этот момент ... – sgeddes

ответ

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 
Смежные вопросы