Вопрос
Select a, b, c from table where a in (1, 2, 3)
Что делать, если список находится в столбце?
Я попробую, это будет ошибка:
Select a, b, c from a in b
Извините, что не прояснил мой вопрос.
Это не о присоединиться или в (выберите b из таблицы)
Тип столбца b — nvarchar, данные — это список, например «1,2,5».
Тип столбца — int.
Нет правильного решения
Другие советы
Прочитав ваш вопрос, вы хотите:
SELECT
a,b,c
FROM
tblA
WHERE
b LIKE CAST(a as nvarchar) + ',%'
OR b LIKE '%,' + CAST(a as nvarchar) + ',%'
OR b LIKE '%,' + CAST(a as nvarchar)
Это должно сработать.
Многие ответы указывают в правильном направлении, но я думаю, что этот действительно сработает:
SELECT a, b, c
FROM table
WHERE ',' + b + ',' LIKE '%,' + CAST(a as varchar) + ',%'
Вы можете ускорить этот процесс, заставив букву B начинаться и заканчиваться запятой.Или, что еще лучше, нормализуйте базу данных и переместите столбец B в отдельную таблицу с отношением «один ко многим».
В SQL столбец обычно относится к одному из так называемых «скалярных» типов данных:числа, дата/время, строки – см., например. MSDN.Если объясните лучше, в каком смысле вы поместили "список" в столбец b
, и как, напримерпокажи нам CREATE TABLE a
заявление, возможно, мы сможем помочь вам лучше!
Видеть Нужна помощь по SQL-запросу, сопоставляющая параметр списка хранимых процедур с отдельными столбцами..В нем показано, как написать пользовательскую функцию, которая будет принимать столбец «список» и возвращать таблицу, которую вы можете использовать для объединения с той, из которой вы выбираете.
Думаю, ты хочешь ПРИСОЕДИНИТЬСЯ к столам?
SELECT a, b, c
FROM a
JOIN b ON a.ID=b.ID