Oracle LEAD-返回下一个匹配的列值

时间:2019-02-21 11:44:18

标签: sql oracle oracle11g lead

我在一张表中有以下数据。

enter image description here

我想从OUT列获取NEXT数据。因此在下面的查询中使用了LEAD函数。

SELECT ROW_NUMBER,TIMESTAMP,IN,OUT,LEAD(OUT) OVER (PARTITION BY NULL ORDER BY TIMESTAMP) AS NEXT_OUT 
FROM MYTABLE;

它提供的数据如下NEXT_OUT列。

enter image description here

但是我需要以顺序方式(如DESIRED列)知道匹配的下一列值。请让我知道如何在Oracle LEAD FUNCTION中实现

谢谢

2 个答案:

答案 0 :(得分:1)

枚举“ in”和“ out”,然后使用该信息进行匹配。

[ngModel]

答案 1 :(得分:1)

将行号分别分配给所有IN和OUT,将结果放在单个列中对结果进行排序并计算LEAD:

library(shiny)
library(timevis)

data <- data.frame(
  id      = 1:4,
  content = c("Item one", "Item two",
              "Ranged item", "Item four"),
  start   = c("2016-01-10", "2016-01-11",
              "2016-01-20", "2016-02-14 15:00:00"),
  end     = c(NA, NA, "2016-02-04", NA),
  editable = TRUE
)

ui <- fluidPage(
  tags$head(
    tags$style(HTML("
      .vis-item .vis-item-overflow { overflow: visible; }
    "))
  ),
  timevisOutput('timeline')
)

server <- function(input, output, session) {
  output$timeline <- renderTimevis( timevis(data) )
}

shinyApp(ui, server)

Demo on db<>fiddle