2015-12-21 3 views
-1

Запрос для создания списка компаний, которые имеют «до» более одного раза в своих именах.найти несколько слов в одной строке

Для примера:

Company Name 
Ittal PLC (adz ll **prior to** 04/2012) (Z Amp C **prior to** 02/2009) 
+1

Hi. Можете ли вы показать нам, что вы пробовали до сих пор? Где у вас возникают трудности? –

ответ

2

Попробуйте

select * 
from Yourtable 
where len([Company Name]) - len(replace([Company Name],'prior to','')) > 1 
    and len([Company Name]) - len(replace([Company Name],'prior to','')) <> len('prior to') 
+0

Я не думаю, что это сработает. OP хочет найти [название компании] с более чем одним случаем «до». Приведенный выше код будет возвращать строки только с одним вхождением. Вы можете заменить> 1 на> = (LEN ('до') * 2). Это означало бы, где текст был заменен дважды или более. Конечно, подход GordonLinoff (используя LIKE) был бы намного проще. –

+0

@ данные назначения - исправлены. Добавлена ​​демоверсия –

2

Один простой способ заключается в использовании like:

where CompanyName like '%prior to%prior to%' 
0

Я бы, вероятно, реализовал это как двухэтапный процесс.

1) Найти все подборки, которые соответствуют до.

E.g.

ВЫБОР company_name ОТ COMPANY_TABLE ГДЕ company_name КАК '% до%'

2) перебирать все записи и находить только те, которые имеют 2 вхождений до подстроки (на любом языке, который вы используете).

Смежные вопросы