Это не тот ответ, который, я знаю, противоречит правилам, но я думаю, что он добавляет полезную дополнительную информацию, которую ОП, возможно, пожелает включить в свой вопрос.
Для получения дополнительной информации это, похоже, работаетдо определенного количества n
значений в contains
.Ниже приведен сценарий в вопросе для построения среды, но используются разные значения теста.select
затем объединяет все значения, возвращаемые содержимым, в одну строку для удобства сравнения:
insert [content] ([content]) values
(N'abc nop abc'),
(N'abc nno abc'),
(N'abc nnn abc'),
(N'abc nnnnbc'),
(N'abc nnnnnc'),
(N'1 2 3'),
(N'10 11 12'),
(N'100 101 102'),
(N'1000 1001 1002'),
(N'10000 10001 10002')
go
select 'a*' as ContainsSearch, stuff((select ' || ' + content from [dbo].[content] where contains([content], N'"a*"') for xml path('')),1,4,'') as ReturnedValues
union all select 'n*' as ContainsSearch, stuff((select ' || ' + content from [dbo].[content] where contains([content], N'"n*"') for xml path('')),1,4,'') as ReturnedValues
union all select 'nn*' as ContainsSearch, stuff((select ' || ' + content from [dbo].[content] where contains([content], N'"nn*"') for xml path('')),1,4,'') as ReturnedValues
union all select 'nnn*' as ContainsSearch, stuff((select ' || ' + content from [dbo].[content] where contains([content], N'"nnn*"') for xml path('')),1,4,'') as ReturnedValues
union all select 'nnnn*' as ContainsSearch, stuff((select ' || ' + content from [dbo].[content] where contains([content], N'"nnnn*"') for xml path('')),1,4,'') as ReturnedValues
union all select 'nnnnn*' as ContainsSearch,stuff((select ' || ' + content from [dbo].[content] where contains([content], N'"nnnnn*"') for xml path('')),1,4,'') as ReturnedValues
Что приводит к:
+----------------+-----------------------------------------------------------------------------------------------------------------------------------------+
| ContainsSearch | ReturnedValues |
+----------------+-----------------------------------------------------------------------------------------------------------------------------------------+
| a* | abc nop abc || abc nno abc || abc nnn abc || abc nnnnbc || abc nnnnnc |
| n* | abc nop abc || abc nno abc || abc nnn abc || abc nnnnbc || abc nnnnnc || 10 11 12 || 100 101 102 || 1000 1001 1002 || 10000 10001 10002 |
| nn* | abc nno abc || abc nnn abc || abc nnnnbc || abc nnnnnc || 10 11 12 || 100 101 102 || 1000 1001 1002 || 10000 10001 10002 |
| nnn* | abc nnn abc || abc nnnnbc || abc nnnnnc |
| nnnn* | abc nnnnbc || abc nnnnnc |
| nnnnn* | abc nnnnnc |
+----------------+-----------------------------------------------------------------------------------------------------------------------------------------+