विश्लेषणात्मक कार्यों से बचने की कोई आवश्यकता नहीं है यदि आपका डेटाबेस उनका समर्थन करता है जैसे ROW_NUMBER()
SELECT
ROW_NUMBER() OVER (ORDER BY [<PRIMARYKEY_COLUMN_NAME>]) AS Number
FROM
[<TABLE_NAME>]
सिंटैक्स Func([ arguments ]) OVER (analytic_clause)
. है आपको ओवर () पर ध्यान केंद्रित करने की आवश्यकता है। यह अंतिम कोष्ठक आपकी पंक्तियों का विभाजन बनाता है और इन विभाजनों पर एक-एक करके Func() लागू करता है। उपरोक्त कोड में हमारे पास पंक्तियों का केवल एक सेट/विभाजन है। इसलिए उत्पन्न अनुक्रम सभी पंक्तियों के लिए है।
आप अपने डेटा के कई सेट बना सकते हैं और एक ही बार में प्रत्येक के लिए अनुक्रम संख्या उत्पन्न कर सकते हैं। उदाहरण के लिए यदि आपको उन सभी पंक्तियों के सेट के लिए अनुक्रम संख्या उत्पन्न करने की आवश्यकता है जिनके पास समान श्रेणी आईडी है। आपको बस Partition By
जोड़ने की जरूरत है इस तरह का खंड (PARTITION BY categoryId ORDER BY [<PRIMARYKEY_COLUMN_NAME>])
।
याद रखें कि FROM
. के बाद आप एक और अतिरिक्त ORDER BY
का भी उपयोग कर सकते हैं अपने डेटा को अलग तरह से सॉर्ट करने के लिए। लेकिन इसका OVER ()