获取表的行并移动到另一个表的列

时间:2013-11-13 22:09:04

标签: sql oracle

给出一个这样的表,单列,

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并用谷歌搜索找到可能有助于解决这个问题但却无法解决的问题。

任何帮助都会很棒!

1 个答案:

答案 0 :(得分: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

小提琴链接已更改。