У меня есть следующий фрагмент кода SQL, который выдает мне ошибку:
WHERE
(SELECT Tokens FROM StringSplitter(@DocumentValue, '|', 1)) IN
(SELECT Tokens FROM StringSplitter(@sortValue, '|', 1))
Где @DocumentValue и @sortValue - это сцепленные строки, разделенные разделителем (в данном случае, '|').
Функция StringSplitter возвращает таблицу каждой отдельной строки. например Fox | Brown | SQL возвращает таблицу с тремя записями: Fox, Brown и SQL.
То, что я хочу, чтобы произошло , - это сравнение двух наборов строк, вставка их в другую таблицу (следовательно, ГДЕ), если какая-либо из отдельных строк из @DocumentValue соответствует какой-либо из отдельных строк из @ sortValue.
Эта реализация имеет недостатки. Если @DocumentValue и @sortValue когда-либо содержат более одной совпадающей строки, запрос завершается неудачно с данной ошибкой.
Тем не менее, как я могу исправить эту ошибку, учитывая, что мне все равно, , какое значение соответствует, если я знаю, действительно ли , по крайней мере, один?
Sql Server 2008