Вчера я опубликовал следующий вопрос: Несколько операторов "in" в предложении where, которые должны совпадать друг с другом
В этом было некоторое обсуждение о функции в Oracle, которая не существует в Microsoft SQL, конкретная строка кода:
where (suite_id,lease_id) in (('CCBG08','205059'),('CCBG14','152424'),('CCCF048','150659'))
Предполагая, что у нас есть таблица (но с большим количеством строк):
suite_id lease_id
CCBG08 150659
CCBG14 152424
Я экстраполировал это, чтобы создать следующее решение для Microsoft SQL:
select *
from property.lease_period
where (suite_id + ' ' + lease_id)
in (
('CCBG08 205059'),
('CCBG14 152424'),
('CCCF048 150659')
)
К сожалению, влияние на производительность при выполнении чего-либо подобного является весьма значительным (поскольку индексы не используются). Мне было интересно, как это можно улучшить?