MySQL में ORDER BY IFNULL(col1, col2) का उपयोग करके यदि पहला कॉलम NULL नहीं है तो उसके अनुसार, अन्यथा दूसरे कॉलम के अनुसार क्रमबद्ध किया जा सकता है।
सिंटैक्स
ORDER BY IFNULL(column1, column2)
उदाहरण
तालिका बनाएं और डेटा डालें:
mysql> CREATE TABLE DemoTable (Name VARCHAR(20), CountryName VARCHAR(20));
mysql> INSERT INTO DemoTable VALUES
-> ('Chris', NULL), ('David', 'AUS'), (NULL, 'UK'), (NULL, 'AUS'), (NULL, NULL);
डेटा
+-------+-------------+
| Name | CountryName |
+-------+-------------+
| Chris | NULL |
| David | AUS |
| NULL | UK |
| NULL | AUS |
| NULL | NULL |
+-------+-------------+
क्वेरी: Name यदि NULL नहीं तो Name, अन्यथा CountryName द्वारा क्रमबद्ध करें
mysql> SELECT * FROM DemoTable
-> ORDER BY IFNULL(Name, CountryName);
परिणाम
+-------+-------------+
| Name | CountryName |
+-------+-------------+
| NULL | NULL |
| NULL | AUS |
| Chris | NULL |
| David | AUS |
| NULL | UK |
+-------+-------------+
व्याख्या
| Name | CountryName | IFNULL(Name, CountryName) | क्रम |
|---|---|---|---|
| NULL | NULL | NULL | 1 (NULL पहले) |
| NULL | AUS | AUS | 2 |
| Chris | NULL | Chris | 3 |
| David | AUS | David | 4 |
| NULL | UK | UK | 5 |
संबंधित फ़ंक्शन
COALESCE(col1, col2, col3, ...)- पहला गैर-NULL लौटाता है (एकाधिक कॉलम)IFNULL(expr1, expr2)- MySQL-विशिष्ट, दो तर्कNULLIF(expr1, expr2)- यदि समान तो NULL, अन्यथा expr1
उपयोग केस
- प्राथमिक/द्वितीयक क्रम कॉलम
- फॉलबैक क्रमबद्धीकरण
- वैकल्पिक फील्ड के साथ रिपोर्टिंग