開始使用免費開始

前一筆與下一筆的值

如果你想把某欄位的值往上或往下位移 1 列怎麼辦?你可以用與上一個練習完全相同的步驟,但加上兩個新函式:LEAD()(取得下一筆值)與 LAG()(取得前一筆值)。步驟如下:

  • 先建立分區
  • 接著依特定欄位排序
  • 最後依需求使用 LEAD() 與/或 LAG() 函式

本練習屬於課程

SQL Server 中級

檢視課程

練習說明

  • 撰寫一個 T-SQL 查詢,對於每個地區:
    • OrderDate 的值往下位移 1 列。將此欄命名為 PreviousOrder
    • OrderDate 的值往上位移 1 列。將此欄命名為 NextOrder。 「你需要依地區進行 PARTITION BY」

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

SELECT TerritoryName, OrderDate, 
       -- Specify the previous OrderDate in the window
       ___(OrderDate) 
       -- Over the window, partition by territory & order by order date
       ___(___ BY ___ ___ BY ___) AS PreviousOrder,
       -- Specify the next OrderDate in the window
       ___(OrderDate) 
       -- Create the partitions and arrange the rows
       ___ AS NextOrder
FROM Orders
編輯並執行程式碼