Get vorherigen und nächsten Reihe von Zeilen ausgewählt (WO) Bedingungen

Ich habe zum Beispiel diese Aussage:

my name is Joseph and my father's name is Brian

Diese Aussage ist aufgeteilt durch das Wort, das, wie in dieser Tabelle:

------------------------------
|      ID      |   word      |
------------------------------
|       1      |   my        |
|       2      |   name      |
|       3      |   is        |
|       4      |   Joseph    |
|       5      |   and       |
|       6      |   my        |
|       7      |   father's  |
|       8      |   name      |
|       9      |   is        |
|       10     |   Brian     |
------------------------------

Möchte ich, um die vorherigen und nächsten Wort jedes Wort

Zum Beispiel möchte ich, um die vorherigen und nächsten Wortes "name":

--------------------------
|    my    |  name  |  is |
--------------------------
| father's |  name  |  is |
--------------------------

Wie könnte ich dieses Ergebnis?

  • Gibt es irgendwelche Lücken in Ihrem ids?
  • Welche Datenbank verwenden Sie? Welche version der Datenbank verwenden Sie? SQL ist eine Sprache, aber fast jede Datenbank hat einen etwas anderen Dialekt von SQL, die es unterstützt. Diese Art der Sache viel einfacher, wenn Sie mit einer Datenbank, die unterstützt Analysefunktionen wie lead und lag.
  • ich benutze SQL 2012 Unterstützung der LAG-und LEAD -, aber ich wollen, nehmen Sie das Ergebnis für die 5-Millionen-Wort "schnell" ist es wichtig, zu nehmen das Ergebnis sehr schnell in meinem Programm
Schreibe einen Kommentar