例如我有这样的说法:
my name is Joseph and my father's name is Brian
该语句按单词拆分,如下表:
------------------------------
| ID | word |
------------------------------
| 1 | my |
| 2 | name |
| 3 | is |
| 4 | Joseph |
| 5 | and |
| 6 | my |
| 7 | father's |
| 8 | name |
| 9 | is |
| 10 | Brian |
------------------------------
我想获取每个单词的上一个和下一个单词
例如我想获取“name”的上一个和下一个单词:
--------------------------
| my | name | is |
--------------------------
| father's | name | is |
--------------------------
我怎样才能得到这个结果?
您没有指定您的 DBMS,因此以下是 ANSI SQL:
select prev_word, word, next_word
from (
select id,
lag(word) over (order by id) as prev_word,
word,
lead(word) over (order by id) as next_word
from words
) as t
where word = 'name';
SQLFiddle:http://sqlfiddle.com/#!12/7639e/1 http://sqlfiddle.com/#!12/7639e/1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)