Я пытаюсь найти строку со всей комбинацией, включенной в строку поиска, вместе со всей строкой. То есть,
1) Search = 'abc def', тогда все строки с abc, def и 'abc def'
2) Seach = 'abc def xyz', затем все строки с abc, def, xyz и 'abc def xyz'
Я написал ниже запрос, чтобы сделать то же самое
DECLARE @search_string VARCHAR(1000) = 'abc def'
DECLARE @Query VARCHAR(1000)
SET @Query = 'SELECT [Question],
( (case when Question like ''%'+LEFT(@search_string, charindex(' ', @search_string) - 1)+'%'' then 1 else 0 end) +
(case when Question like ''%'+SUBSTRING(@search_string, CHARINDEX(' ', @search_string) +1, DATALENGTH(@search_string) - CHARINDEX(' ', @search_string) +1 )+'%'' then 1 else 0 end) +
(case when Question like ''%'+@search_string+'%'' then 1 else 0 end)
) as CountString
FROM Tbl_Questions WHERE ([Question] LIKE ''%' + REPLACE(@search_string, ' ', '%'' OR [Question] LIKE ''%') + '%'') order by CountString desc'
EXEC(@Query)
Это дает мне результаты для слов с одним пробелом. Я не могу получить результаты для слов с несколькими пробелами. Кроме того, мне нужно заказать по всему слову. То есть, если 4 строка соответствует всем трем словам (abc def xyz), она должна быть сверху. если некоторые из них соответствуют abc def, то это должно быть следующим.
Как изменить этот код, включив в него несколько пробелов и выполнить поиск в соответствии с указанным выше?