SQL सर्वर में, आप TOP
. का उपयोग कर सकते हैं एक क्वेरी से लौटाई गई पंक्तियों को परिणाम सेट के एक निश्चित प्रतिशत तक सीमित करने के लिए क्लॉज।
उदाहरण के लिए, आप शीर्ष 10% परिणाम, या जो भी प्रतिशत आपको चाहिए उसे वापस कर सकते हैं।
उदाहरण 1 - पूरा परिणाम सेट
सबसे पहले, पूरा परिणाम सेट लौटाते हैं:
SELECT AlbumId, AlbumName FROM Albums ORDER BY AlbumId;
परिणाम:
+-----------+--------------------------+ | AlbumId | AlbumName | |-----------+--------------------------| | 1 | Powerslave | | 2 | Powerage | | 3 | Singing Down the Lane | | 4 | Ziltoid the Omniscient | | 5 | Casualties of Cool | | 6 | Epicloud | | 7 | Somewhere in Time | | 8 | Piece of Mind | | 9 | Killers | | 10 | No Prayer for the Dying | | 11 | No Sound Without Silence | | 12 | Big Swing Face | | 13 | Blue Night | | 14 | Eternity | | 15 | Scandinavia | | 16 | Long Lost Suitcase | | 17 | Praise and Blame | | 18 | Along Came Jones | | 19 | All Night Wrong | | 20 | The Sixteen Men of Tain | | 21 | Yo Wassup | | 22 | Busted | +-----------+--------------------------+
तो पूरे परिणाम सेट में 22 पंक्तियाँ हैं।
उदाहरण 2 - शीर्ष 10% परिणाम लौटाएं
आइए अब उन परिणामों में से शीर्ष 10 प्रतिशत लौटाते हैं:
SELECT TOP(10) PERCENT AlbumId, AlbumName FROM Albums ORDER BY AlbumId;
परिणाम:
+-----------+-----------------------+ | AlbumId | AlbumName | |-----------+-----------------------| | 1 | Powerslave | | 2 | Powerage | | 3 | Singing Down the Lane | +-----------+-----------------------+
इस स्थिति में, तीन पंक्तियाँ वापस आ जाती हैं।
आप देख सकते हैं कि 22 का 10 प्रतिशत वास्तव में 2.2 है (3 नहीं)। स्पष्ट रूप से SQL सर्वर 2.2 पंक्तियों को प्रस्तुत नहीं कर सकता है, इसलिए यह परिणामों को गोल करता है।
उदाहरण 2 - नीचे की बजाय गोल करना
यदि आप सोच रहे हैं कि SQL सर्वर परिणामों को नीचे में गोल क्यों नहीं करता है जब भी भिन्नात्मक भाग 5 से कम हो, तो निम्न उदाहरण पर एक नज़र डालें।
SELECT TOP(1) PERCENT AlbumId, AlbumName FROM Albums ORDER BY AlbumId;
परिणाम:
+-----------+-------------+ | AlbumId | AlbumName | |-----------+-------------| | 1 | Powerslave | +-----------+-------------+
याद रखें कि पूर्ण परिणाम सेट में 22 पंक्तियाँ थीं, इसलिए 22 पंक्तियों में से 1 प्रतिशत का अर्थ होगा कि 0.22 पंक्तियाँ वापस की जानी चाहिए।
और यही कारण है कि हम गोल नहीं करना चाहेंगे। यदि 0.22 पंक्तियों को गोल कर दिया जाता है, तो कोई पंक्तियाँ वापस नहीं की जाएंगी, इस प्रकार गलत तरीके से हमें यह निष्कर्ष निकालना होगा कि हमारी क्वेरी के लिए कोई मिलान नहीं था।
उदाहरण 3 - शून्य प्रतिशत
जैसा कि आप उम्मीद कर सकते हैं, 0 प्रतिशत का उपयोग करने से शून्य पंक्तियाँ वापस आ जाएँगी।
SELECT TOP(0) PERCENT AlbumId, AlbumName FROM Albums ORDER BY AlbumId;
परिणाम:
(0 rows affected)
उदाहरण 4 - अधिकतम प्रतिशत
आप केवल 0 और 100 के बीच प्रतिशत मान प्रदान कर सकते हैं।
यहां 100 से अधिक मान का उपयोग करने का प्रयास करने का एक उदाहरण दिया गया है:
SELECT TOP(120) PERCENT AlbumId, AlbumName FROM Albums ORDER BY AlbumId;
परिणाम:
Msg 1031, Level 15, State 1, Line 2 Percent values must be between 0 and 100.
उदाहरण 5 - नकारात्मक प्रतिशत
जैसा कि उल्लेख किया गया है, प्रतिशत मान 0 और 100 के बीच होना चाहिए, इसलिए यदि आप एक नकारात्मक प्रतिशत प्रदान करते हैं तो आपको एक त्रुटि मिलेगी।
SELECT TOP(-10) PERCENT AlbumId, AlbumName FROM Albums ORDER BY AlbumId;
परिणाम:
Msg 1031, Level 15, State 1, Line 3 Percent values must be between 0 and 100.