Вопрос

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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top