У меня есть отчет SSRS с набором данных, у которого запрос выглядит так (упрощенно, поскольку запрос намного сложнее этого):
select *
from myTable
where country in (@Country)
@Country
является параметром и может иметь несколько значений
Работает нормально, но нас попросили свернуть все значения из одной страны в другую (страны нет в списке параметров, которые нужно выбрать).
Так, например, нам нужно свернуть все записи, которые принадлежат Канаде, в США, если США были выбраны в качестве одной из стран, по сути, просто заменив «Канада» на «США» в возвращенном наборе данных, чего легко достичь с помощью REPLACE или даже заявление CASE. Однако с предложением WHERE в запросе это немного усложняется. Кто-нибудь знает, как заменить строку другой строкой, чтобы ее понимал оператор IN?
Если я просто сделаю что-то вроде этого:
select *
from myTable
where country in (replace(@Country, 'US', 'US,Canada'))
запрос ничего не возвращает, и я понимаю причины этого.
Если я проверю это жесткое кодирование значений, как это:
select *
from myTable
where country in ('US', 'Canada')
возвращает правильные строки данных. Я думаю, что я ищу способ объединения нескольких значений, чтобы он правильно понимался оператором IN.
ТИА,
-TS.