Как выполнить соединение между столбцом идентификатора типа с плавающей точкой и одной строкой с несколькими идентификаторами, разделенными запятой - PullRequest
0 голосов
/ 15 апреля 2020

Мне нужно объединить идентификаторы двух наборов, где в наборе есть несколько идентификаторов, а в другой таблице только один идентификатор. Мой запрос:

Select * from(Select('1301,1303,1305,1307,1309,1311,1313,1315') IDs from market group by market.Segment)P join DST d on   p.IDs = d.ID 

Стоит отметить, что '1301,1303,1305,1307,1309,1311,1313,1315' - это значение, полученное из запроса Dynami c, поэтому я не могу манипулировать этим значение (до 1301,1303,1305,1307,1309,1311,1313,1315). В этом запросе d.ID имеет тип с плавающей точкой. Этот запрос не работает.

Моя цель - найти любую запись из таблицы DST, которая имеет хотя бы один идентификатор среди идентификаторов 1301,1303,1305,1307,1309,1311,1313,1315.

Как мне это сделать? это?

1 Ответ

0 голосов
/ 15 апреля 2020

Вы можете использовать IN предложение:

select m.*
from market m
where m.id in (1301,1303,1305,1307,1309,1311,1313,1315);

Если id s в строковом формате, вы можете сделать:

select m.*
from market m cross apply
     dbo.string_split('1301,1303,1305,1307,1309,1311,1313,1315', ',') mm
where mm.value = m.id;
...