เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ค่าก่อนหน้าและค่าถัดไป

ถ้าต้องการเลื่อนค่าในคอลัมน์ขึ้นหรือลงหนึ่งแถวทำได้อย่างไร? ใช้ขั้นตอนเดียวกับแบบฝึกหัดก่อนหน้า แต่เพิ่มฟังก์ชันใหม่สองตัว ได้แก่ LEAD() สำหรับค่าถัดไป และ LAG() สำหรับค่าก่อนหน้า โดยมีขั้นตอนดังนี้

  • ขั้นแรก สร้าง partition
  • จากนั้น เรียงลำดับตามคอลัมน์ที่ต้องการ
  • สุดท้าย ใช้ฟังก์ชัน LEAD() และ/หรือ LAG() ตามความต้องการ

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

SQL Server ระดับกลาง

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เขียนคิวรี T-SQL ที่สำหรับแต่ละพื้นที่ทำดังนี้
    • เลื่อนค่าใน OrderDate ลงหนึ่งแถว แล้วตั้งชื่อคอลัมน์นี้ว่า PreviousOrder
    • เลื่อนค่าใน OrderDate ขึ้นหนึ่งแถว แล้วตั้งชื่อคอลัมน์นี้ว่า 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
แก้ไขและรันโค้ด