MariaDB
 sql >> डेटाबेस >  >> RDS >> MariaDB

कैसे COALESCE () मारियाडीबी में काम करता है

मारियाडीबी में, COALESCE() ऑपरेटर सूची में पहला गैर-शून्य मान देता है, या यदि कोई गैर-शून्य मान नहीं है तो NULL देता है।

सिंटैक्स

वाक्य रचना इस प्रकार है:

COALESCE(value,...)

उदाहरण

प्रदर्शित करने के लिए यहां एक सरल उदाहरण दिया गया है:

SELECT COALESCE(null, 'Red', 'Black');

परिणाम:

Red

इस मामले में, Red पहला गैर-शून्य मान था, और इसलिए COALESCE() वह मान लौटा दिया।

Black गैर-नल भी था, लेकिन यह Red . के बाद आया था और इसलिए इसे वापस नहीं किया गया।

डेटाबेस उदाहरण

मान लीजिए कि हम निम्नलिखित क्वेरी चलाते हैं:

SELECT
    PetName,
    DOB AS "Date of Birth"
FROM Pets;

और हमें निम्नलिखित परिणाम मिलते हैं:

+---------+---------------+
| PetName | Date of Birth |
+---------+---------------+
| Fluffy  | 2020-11-20    |
| Fetch   | 2019-08-16    |
| Scratch | 2018-10-01    |
| Wag     | 2020-03-15    |
| Tweet   | 2020-11-28    |
| Fluffy  | 2020-09-17    |
| Bark    | NULL          |
| Meow    | NULL          |
+---------+---------------+

हम देख सकते हैं कि अंतिम दो पंक्तियों में DOB कॉलम में NULL मान हैं।

अगर हम NULL . को बदलना चाहते हैं दूसरे मान के साथ, हम क्वेरी को इस प्रकार बदल सकते हैं:

SELECT
    PetName,
    COALESCE(DOB, 'None Supplied') AS "Date of Birth"
FROM Pets;

परिणाम:

+---------+---------------+
| PetName | Date of Birth |
+---------+---------------+
| Fluffy  | 2020-11-20    |
| Fetch   | 2019-08-16    |
| Scratch | 2018-10-01    |
| Wag     | 2020-03-15    |
| Tweet   | 2020-11-28    |
| Fluffy  | 2020-09-17    |
| Bark    | None Supplied |
| Meow    | None Supplied |
+---------+---------------+

अभिव्यक्ति

COALESCE() पहली अभिव्यक्ति का वर्तमान मान देता है जो प्रारंभ में NULL . का मूल्यांकन नहीं करता है . इसलिए, अगर हम इस तरह से एक व्यंजक पास करते हैं:

SELECT COALESCE( null, 5 * 2 );

हमें यह मिलता है:

10

जब सभी मान NULL हों

यदि सभी मान NULL हैं , COALESCE() रिटर्न NULL :

SELECT COALESCE( null, null );

परिणाम:

NULL

COALESCE() बनाम IFNULL()

जब दो मानों के साथ प्रयोग किया जाता है, COALESCE() IFNULL . जैसा ही काम करता है :

SET @a = null, @b = 52;
SELECT 
    COALESCE(@a, @b), 
    IFNULL(@a, @b);

परिणाम:

+------------------+----------------+
| COALESCE(@a, @b) | IFNULL(@a, @b) |
+------------------+----------------+
| 52               | 52             |
+------------------+----------------+

अवैध तर्क गणना

COALESCE() का उपयोग करना बिना किसी तर्क के त्रुटि उत्पन्न होती है:

SELECT COALESCE();

परिणाम:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
पर ')' के पास उपयोग करने के लिए सही सिंटैक्स के लिए अपने मारियाडीबी सर्वर संस्करण से संबंधित मैनुअल की जांच करें।

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ClusterControl के साथ डेटाबेस फ़ेलओवर को स्वचालित कैसे करें

  2. कैसे एमओडी () मारियाडीबी में काम करता है

  3. एक हाइब्रिड क्लाउड सेटअप में मारियाडीबी चलाना

  4. एडब्ल्यूएस पर एक MySQL गैलेरा क्लस्टर को तैनात करने का आसान तरीका

  5. मारियाडीबी JSON_SEARCH () समझाया गया