Как найти повторяющиеся слова ячейки в SQL - PullRequest
2 голосов
/ 11 июня 2009

У меня есть столбец с именами «situ» и «entityid».

Entityid    Situation
1234        In <b>the the</b> world <b>of of</b>
3456        Total universe <b>is is</b> a

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

Спасибо Рамеш

Ответы [ 2 ]

1 голос
/ 11 июня 2009

Если вы хотите жестко закодировать это:

select EntityID, Situation
from Entity
where Situation like '%the the%'
or Situation like '%of of%'
or Situation like '%is is%'

Обновление: Вот немного менее жестко закодированный подход:

select EntityID, Situation, right(s2, diff * 2 + 1) as RepeatedWords
from (
    select EntityID, Situation, WordNumber,
        substring_index(Situation, ' ', WordNumber) s1,
        substring_index(Situation, ' ', WordNumber + 1) s2,
        length(substring_index(Situation, ' ', WordNumber + 1)) - length(substring_index(Situation, ' ', WordNumber)) -1 diff
    from `Entity` e
    inner join (
        select 1 as WordNumber
        union all
        select 2 
        union all
        select 3 
        union all
        select 4 
        union all
        select 5 
        union all
        select 6 
        union all
        select 7 
        union all
        select 8 
        union all
        select 9 
        union all
        select 10 
    ) n
) a
where right(s1, diff) = right(s2, diff)
    and diff > 0
order by EntityID, WordNumber

Он будет искать до первых 10 слов или около того и не обрабатывать регистр, пунктуацию или несколько пробелов должным образом, но он должен дать вам представление о подходе, который вы можете использовать. Если вы хотите, чтобы он обрабатывал более длинные строки, просто продолжайте добавлять в операторы UNION ALL.

0 голосов
/ 11 июня 2009

Если вы хотите использовать SQL Server Express, вы сможете создать пользовательскую функцию CLR.

http://msdn.microsoft.com/en-us/library/w2kae45k(VS.80).aspx

Тогда у вас под рукой будут регулярные выражения.

Затем, в зависимости от вашего уровня владения RegEx, у вас либо останется ноль проблем, либо две проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...