0

给定一个像这样的单列表,

Names 
------
A
B
C
D
E

从表中取出每条记录并检查上一个和下一个值并将其放在新表中。如果不存在列名为 prev_name,current_name,next 的上一个或下一个值,则打印 'null'

Prev_name| Current name| next
-----------------------------
NULL     | A           |B
A        | B           |C 
B        | C           |D 
C        | D           |E 
D        | E           |NULL

我正在学习 SQL 并用谷歌搜索找到可能有助于解决此问题但无法解决的问题。

任何帮助都会很棒!

4

1 回答 1

2

请参阅小提琴中的此链接,Query。但 NULLS 被视为空格,在字符串连接中被省略。

请使用此查询

  SELECT LAG(NAMES) OVER(ORDER BY NAMES) AS PREV_NM,  NAMES,
  LEAD(NAMES) OVER(ORDER BY NAMES) AS NEXT_NM
  FROM SAMPLE

小提琴链接已更改。

于 2013-11-13T22:20:54.753 回答