У меня есть таблица со словами из текста (таблица называется token
), каждое слово является строкой в таблице.Я хочу получить соседние слова в результате.
Пример: My name is Renato
должен возвращать:
My | name
name | is
is | Renato
Следующий запрос работает, но работает медленно.textblockid
определяет текст, которому принадлежит слово, sentence
- количество предложений в текстовом блоке (но на данный момент значение равно 1 для всех), а атрибут position
определяет порядок слов.
select w1.text,w2.text
from token as w1,
(select textblockid,sentence,position,text from token
order by textblockid,sentence,position) as w2
where w1.textblockid = w2.textblockid
and w1.sentence = w2.sentence
and w1.position = w2.position - 1
Есть ли лучший / более быстрый способ сделать это?