Как я могу использовать содержимое для поиска ключевого слова, включая пробел? - PullRequest
0 голосов
/ 03 января 2019

Я хочу использовать contains для поиска по слову с пробелом слева и справа. Но это не работает ..

SELECT *
FROM mytable
WHERE Contains(name, ' Hertz ');

Любая помощь приветствуется ..

Ответы [ 9 ]

0 голосов
/ 03 января 2019

Попробуйте это

Select * from mytable where replace(name,' ','')='Hertz'

Вы также можете использовать ltrim & rtrim для удаления пробелов во время выполнения, чтобы соответствовать значениям имени.

0 голосов
/ 04 января 2019

Вы можете попробовать это

SELECT a.name
  FROM mytable a
   WHERE a.name like ' %% '

ИЛИ

SELECT a.name
      FROM mytable a
       WHERE a.name like' % '

Вы можете найти живое демо Демо здесь

0 голосов
/ 03 января 2019

Чтобы выполнить поиск с включенными пробелами, необходимо заключить выражение в двойные кавычки, например:

SELECT *
FROM mytable
WHERE CONTAINS(name, '" Hertz "');

Конечно, это также можно записать с помощью LIKE (хотя это будет менее эффективно при работе с большими наборами данных):

SELECT *
FROM mytable
WHERE name LIKE '% Hertz %');
0 голосов
/ 03 января 2019

Если вы используете как оператор , вам не нужно ставить пробелы между ними, как показано ниже

select * from mytable where name like '%her%'

А также, если вам нужны данные, содержащие пробелы, вы можете использовать, как показано ниже

select * from mytable where name like '_%hertz%_'

Если мы используем подчеркивание , оно пропустит конкретный элемент позиции и выполнит поиск данных.

0 голосов
/ 03 января 2019

Вы можете LTRIM RTRIM столбца и можете получить значения.

create table #temp
(
name varchar(50)
)

insert into #temp values(' hertz')

insert into #temp values('hertz ')

insert into #temp values('hertzx')

insert into #temp values('hertz')

select * from #temp where LTRIM(RTRIM(name)) like '%hertz%'

Если вы хотите искать, есть ли у него место в начале или конце использования ниже запроса.

select * from #temp where name like ' %'

select * from #temp where name like '% '
0 голосов
/ 03 января 2019

Если вы хотите использовать CONTAINS, перейдите с:

SELECT *
FROM mytable
WHERE CONTAINS(name, '" Hertz "');

Проверьте раздел: Поиск определенного слова или фразы (простой термин)

0 голосов
/ 03 января 2019

Вы можете попробовать это

SELECT *
FROM mytable
WHERE name Like '% Hertz %'
0 голосов
/ 03 января 2019

Попробуйте, как показано ниже.

SELECT *
FROM mytable
WHERE name LIKE '% Hertz %'

Узнайте больше о том, как оператор

0 голосов
/ 03 января 2019

Попробуйте с этим:

SELECT *
FROM mytable
WHERE name=' Hertz '

Если Герц является лишь примером, вы можете использовать:

SELECT *
FROM mytable
WHERE name like ' % '

, который вернет все имена с пробелом в первой и последней позиции

...