У меня есть varchar значений, разделенных запятой. Я пытаюсь проверить, находится ли значение в списке, разделенном запятыми.IN только соответствует первому значению при использовании STRING_SPLIT
Например, если varchar является «AAA, BBB, CCC», проверка на «BBB» должна возвращать значение true.
Я использую STRING_SPLIT разобрать запятые список разделенных, но совпадающий только работает, как я ожидал от первого значения:
DECLARE @List VARCHAR(100) = 'AAA, BBB, CCC'
SELECT
CASE
WHEN 'AAA' IN (SELECT VALUE FROM STRING_SPLIT(@List, ',')) THEN 'true'
ELSE 'false'
END
--selects true
SELECT
CASE
WHEN 'BBB' IN (SELECT VALUE FROM STRING_SPLIT(@List, ',')) THEN 'true'
ELSE 'false'
END
--selects false
Как вы можете видеть из этого Screenshot, STRING_SPLIT раскалывается все значения как и ожидалось. Почему IN проверяет только первый?
Упс. Как обычно, Дьявол находится в деталях. Спасибо вам за помощь. –