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