Где значение в столбце, содержащее значения, разделенные запятыми

Я хочу написать оператор 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 () OR 'LIKE', поскольку в приведенном выше примере будут возвращены значения для 'horse', поскольку вся строка содержит лошадь в 'Seahorse', и Я не могу искать иглу с запятой (если я ищу «лошадь», поиск будет «лошадь»). А что, если запись находится в конце списка? И я не могу искать запятую плюс иголку (если я ищу "лошадь", поиск будет ", лошадь") а что, если запись будет первой в списке? И я не могу использовать оба, а что, если запись является единственной (единственной) записью?

44
задан Dale K 2 April 2019 в 06:02
поделиться