जैसा कि मैंने इस लेख में बताया है , SQL परिणाम सेट में फेरबदल करने के लिए, आपको डेटाबेस-विशिष्ट फ़ंक्शन कॉल का उपयोग करने की आवश्यकता होती है।
ध्यान दें कि एक रैंडम फ़ंक्शन का उपयोग करके सेट किए गए एक बड़े परिणाम को बहुत धीमा हो सकता है, इसलिए सुनिश्चित करें कि आप छोटे परिणाम सेट पर ऐसा करते हैं।
यदि आपको एक बड़े परिणाम सेट को फेरबदल करना है और इसे बाद में सीमित करना है, तो ORDER BY खंड में एक यादृच्छिक फ़ंक्शन के बजाय OracleSAMPLE(N)
या SQL सर्वर या PostgreSQLTABLESAMPLE
में कुछ का उपयोग करना बेहतर है ।
इसलिए, यह मानते हुए कि हमारे पास निम्नलिखित डेटाबेस तालिका है:
और song
तालिका में निम्नलिखित पंक्तियाँ :
| id | artist | title |
|----|---------------------------------|------------------------------------|
| 1 | Miyagi & Эндшпиль ft. Рем Дигга | I Got Love |
| 2 | HAIM | Don't Save Me (Cyril Hahn Remix) |
| 3 | 2Pac ft. DMX | Rise Of A Champion (GalilHD Remix) |
| 4 | Ed Sheeran & Passenger | No Diggity (Kygo Remix) |
| 5 | JP Cooper ft. Mali-Koa | All This Love |
आकाशवाणी
ओरेकल पर, आपको DBMS_RANDOM.VALUE
फ़ंक्शन का उपयोग करने की आवश्यकता है , जैसा कि निम्नलिखित उदाहरण द्वारा चित्रित किया गया है:
SELECT
artist||' - '||title AS song
FROM song
ORDER BY DBMS_RANDOM.VALUE
Oracle पर पूर्वोक्त SQL क्वेरी चलाते समय, हम निम्नलिखित परिणाम प्राप्त करने जा रहे हैं:
| song |
|---------------------------------------------------|
| JP Cooper ft. Mali-Koa - All This Love |
| 2Pac ft. DMX - Rise Of A Champion (GalilHD Remix) |
| HAIM - Don't Save Me (Cyril Hahn Remix) |
| Ed Sheeran & Passenger - No Diggity (Kygo Remix) |
| Miyagi & Эндшпиль ft. Рем Дигга - I Got Love |
ध्यान दें कि गीतों को यादृच्छिक क्रम में सूचीबद्ध किया जा रहा DBMS_RANDOM.VALUE
है, ORDER BY खंड द्वारा उपयोग किए जाने वाले फ़ंक्शन कॉल के लिए धन्यवाद ।
एस क्यू एल सर्वर
SQL सर्वर पर, आपको NEWID
फ़ंक्शन का उपयोग करने की आवश्यकता है , जैसा कि निम्नलिखित उदाहरण द्वारा चित्रित किया गया है:
SELECT
CONCAT(CONCAT(artist, ' - '), title) AS song
FROM song
ORDER BY NEWID()
SQL सर्वर पर पूर्वोक्त SQL क्वेरी चलाते समय, हम निम्नलिखित परिणाम सेट प्राप्त करने जा रहे हैं:
| song |
|---------------------------------------------------|
| Miyagi & Эндшпиль ft. Рем Дигга - I Got Love |
| JP Cooper ft. Mali-Koa - All This Love |
| HAIM - Don't Save Me (Cyril Hahn Remix) |
| Ed Sheeran & Passenger - No Diggity (Kygo Remix) |
| 2Pac ft. DMX - Rise Of A Champion (GalilHD Remix) |
ध्यान दें कि गीतों को यादृच्छिक क्रम में सूचीबद्ध किया जा रहा NEWID
है, ORDER BY खंड द्वारा उपयोग किए जाने वाले फ़ंक्शन कॉल के लिए धन्यवाद ।
PostgreSQL
PostgreSQL पर, आपको random
फ़ंक्शन का उपयोग करने की आवश्यकता है , जैसा कि निम्नलिखित उदाहरण द्वारा चित्रित किया गया है:
SELECT
artist||' - '||title AS song
FROM song
ORDER BY random()
PostgreSQL पर पूर्वोक्त SQL क्वेरी चलाते समय, हम निम्नलिखित परिणाम सेट प्राप्त करने जा रहे हैं:
| song |
|---------------------------------------------------|
| 2Pac ft. DMX - Rise Of A Champion (GalilHD Remix) |
| JP Cooper ft. Mali-Koa - All This Love |
| Ed Sheeran & Passenger - No Diggity (Kygo Remix) |
| HAIM - Don't Save Me (Cyril Hahn Remix) |
| Miyagi & Эндшпиль ft. Рем Дигга - I Got Love |
ध्यान दें कि गीतों को यादृच्छिक क्रम में सूचीबद्ध किया जा रहा random
है, ORDER BY खंड द्वारा उपयोग किए जाने वाले फ़ंक्शन कॉल के लिए धन्यवाद ।
माई एसक्यूएल
MySQL पर, आपको RAND
फ़ंक्शन का उपयोग करने की आवश्यकता है , जैसा कि निम्नलिखित उदाहरण द्वारा चित्रित किया गया है:
SELECT
CONCAT(CONCAT(artist, ' - '), title) AS song
FROM song
ORDER BY RAND()
MySQL पर उपरोक्त उल्लिखित SQL क्वेरी चलाते समय, हम निम्नलिखित परिणाम सेट प्राप्त करने जा रहे हैं:
| song |
|---------------------------------------------------|
| HAIM - Don't Save Me (Cyril Hahn Remix) |
| Ed Sheeran & Passenger - No Diggity (Kygo Remix) |
| Miyagi & Эндшпиль ft. Рем Дигга - I Got Love |
| 2Pac ft. DMX - Rise Of A Champion (GalilHD Remix) |
| JP Cooper ft. Mali-Koa - All This Love |
ध्यान दें कि गीतों को यादृच्छिक क्रम में सूचीबद्ध किया जा रहा RAND
है, ORDER BY खंड द्वारा उपयोग किए जाने वाले फ़ंक्शन कॉल के लिए धन्यवाद ।