У меня есть таблица «формы» с заголовком «title». Внутри моей хранимой процедуры я создаю временную таблицу «# temp1» с помощью столбца «searchVals».Выбор на основе строки, содержащей одну или многие другие строки
Несколько строк анализируются в хранимой процедуре, число строк является переменной.
То, что я пытаюсь достичь, - это выбор строки, если «заголовок» содержит один или несколько «searchVal». Но я еще не смог достичь этого.
Например что-то вроде этого
SELECT title FROM #temp1 WHERE title IN ('%'+(SELECT searchVal FROM #temp1)+'%')
Этот вопрос, очевидно, что в не допускает подстановочных знаков, но если он сделал, это тип результата я пытаюсь добиться. Сборка ORs также не работает, так как количество строк в # temp1 является переменной. Предикат и поиск в свободном тексте не работают, поскольку база данных форм не индексируется соответствующим образом.
Я придумал то, что, по моему мнению, является правильным решением, но я не могу построить его правильно. Функция вызывается из предложения WHERE и возвращает логическое значение. Извините, если на это было дано ответ в другом месте, я искал экстенсивно. Ниже представлено мое предлагаемое решение с псевдокодом, где я не уверен в сменном SQL-коде.
DECLARE FUNCTION dbo.checkVal(searchVal column, formTitle varchar)
RETURNS boolean
AS
BEGIN
WHILE (not end of column)
IF formTitle LIKE '%'+searchVal+'%'
RETURN true
END
END
RETURN FALSE
END
Извините за мой непоследовательный и неправильный код SQL. Я был бы признателен за любые предложения или исправления, которые заставили бы мой код работать. Также приветствуются лучшие решения. Спасибо.
Можете ли вы предоставить образцы данных и ожидаемый результат? –