पिछली और अगली वैल्यूज़
क्या होगा अगर आप किसी कॉलम की वैल्यूज़ को एक पंक्ति ऊपर या नीचे शिफ्ट करना चाहें? आप पिछले अभ्यास वाले ही स्टेप्स का उपयोग कर सकते हैं, बस दो नए फंक्शन्स के साथ: अगले मान के लिए LEAD() और पिछले मान के लिए LAG(). इसलिए ये स्टेप्स फ़ॉलो करें:
- पहले, पार्टिशन बनाएँ
- फिर, किसी चुनिंदा कॉलम के अनुसार ऑर्डर करें
- अंत में, अपनी आवश्यकता के अनुसार
LEAD()और/याLAG()फंक्शन्स का उपयोग करें
यह अभ्यास पाठ्यक्रम का हिस्सा है
इंटरमीडिएट SQL Server
अभ्यास निर्देश
- प्रत्येक territory के लिए एक T-SQL क्वेरी लिखें जो:
OrderDateकी वैल्यू को एक पंक्ति नीचे शिफ्ट करे. इस कॉलम कोPreviousOrderनाम दें.OrderDateकी वैल्यू को एक पंक्ति ऊपर शिफ्ट करे. इस कॉलम कोNextOrderनाम दें. आपको territory के आधार पर 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