Когда я бегу этот вопрос:Is Содержит Эквивалентен Как и в SQL Server
Select * from Table1 Where Column1 Like 'aaa%' --3 Result
Select * from Table1 Where Column1 Like 'a%' --3 Result
Select * from Table1 Where Column1 Like 'A%' --3 Result
, но когда я бегу
Select * from Table1 Where Contains(Column1 ,'aaa') --3 Result
Select * from Table1 Where Contains(Column1 ,'a') --0 Result
Select * from Table1 Where Contains(Column1 ,'A') --0 Result
CONTAINS
можно найти: As Per MSDN
- Слово или фраза.
- Префикс слова или фразы.
- Слово рядом с другим словом.
Означает ли это, что Contains
не может найти буквы?
Если да, то как?
Edit2:
declare @param as varchar(20)='a'
select * from table1 where Contains(column1,@param)
Это рабочая,
declare @param as varchar(20)='"a*"'
select * from table1 where Contains(column1,@param)
Но это не
declare @param as varchar(20)='a'
select * from table1 where Contains(column1,@param+'*')
И
select * from table1 where Contains(column1,'"'[email protected]+'*"')
согласно [docs] (https://msdn.microsoft.com/en-us/library/ms187787.aspx): 'Ищет точные или нечеткие (менее точные) совпадения с одиночными словами и фразами'. 'a', вероятно, будет считаться помехой/[стоп-слово] (https://msdn.microsoft.com/en-us/library/ms142551.aspx) и будет проигнорирован. try 'contains (column, 'a *')' –
Вам нужно включить двойные кавычки в строку поиска. Посмотрите примеры на странице MSDN, на которые ссылается мой ответ. Те должны помочь вам. – DeadZone