परिचय
MySQL में किसी कॉलम के पहले अक्षर के आधार पर रिकॉर्ड्स को क्रमबद्ध करने के लिए ORDER BY CASE स्टेटमेंट का उपयोग किया जाता है। यह तब उपयोगी होता है जब आपको किसी विशेष अक्षर से शुरू होने वाले रिकॉर्ड्स को प्राथमिकता देनी हो।
उदाहरण: टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable1535 (
-> Value VARCHAR(100)
-> );
Query OK, 0 rows affected (2.26 sec)
mysql> INSERT INTO DemoTable1535 VALUES('MySQL is good relational database.');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable1535 VALUES('is MySQL easy to lean');
Query OK, 1 row affected (0.35 sec)
mysql> INSERT INTO DemoTable1535 VALUES('You need to start basic SQL');
Query OK, 1 row affected (0.35 sec)
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable1535;
आउटपुट:
+------------------------------------+
| Value |
+------------------------------------+
| MySQL is good relational database. |
| is MySQL easy to lean |
| You need to start basic SQL |
+------------------------------------+
3 rows in set (0.00 sec)
पहले अक्षर के आधार पर क्रमबद्ध करने की क्वेरी
हम 'i' अक्षर से शुरू होने वाले रिकॉर्ड को पहले दिखाने के लिए CASE स्टेटमेंट का उपयोग करेंगे:
mysql> SELECT * FROM DemoTable1535
-> ORDER BY CASE WHEN LEFT(Value, 1) = 'i' THEN 1 ELSE 2 END, Value;
परिणाम
+------------------------------------+
| Value |
+------------------------------------+
| is MySQL easy to lean |
| MySQL is good relational database. |
| You need to start basic SQL |
+------------------------------------+
3 rows in set (0.00 sec)
व्याख्या
LEFT(Value, 1)- कॉलम के पहले अक्षर को निकालता हैCASE WHEN ... THEN 1 ELSE 2 END- 'i' से शुरू होने वालों को 1 (पहली प्राथमिकता), बाकी को 2 देता हैValue- द्वितीयक क्रमबद्धिकरण के लिए कॉलम का नाम
इस तकनीक से आप किसी भी अक्षर या पैटर्न के आधार पर कस्टम क्रमबद्धिकरण कर सकते हैं।