Я хочу написать оператор SQL для SQL Server 2008, который выбирает запись, в которой столбец содержит значение, теперь значение в столбце представляет собой список с разделителями-запятыми (обычно - это может быть только одна запись (без начальных запятых) ) так, что при проверке «это значение содержится где-то в списке?», например:
COLUMN = Cat, Dog, Sparrow, Trout, Cow, Seahorse
Does COLUMN contain Cat? YES
Does COLUMN contain horse? NO
Does COLUMN contain Sheep? NO
или
COLUMN = Mouse
Does COLUMN contain Hare? NO
Does COLUMN contain Mouse? YES
и т.д.
Я думал, что могу использовать ключевое слово IN как таковое
SELECT id_column FROM table_name WHERE 'Cat' IN COLUMN
но это не работает, так как кажется, что вы можете использовать это только для проверки, содержит ли столбец одно из ряда значений, разделенных запятыми.
Я также не могу использовать CONTAINS () ИЛИ «LIKE», так как в приведенном выше примере будут возвращаться значения «horse», поскольку вся строка содержит лошадь в «Seahorse», и я не могу найти иглу плюс запятая (если я ищу «лошадь», поиск будет «лошадь»), а что, если запись находится в конце списка? И я не могу найти запятую и иглу (если я ищу «лошадь», поиск будет «лошадь»)
а что если запись является первой в списке? И я не могу использовать оба, так как если запись является единственной (единственной) записью?