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

MySQL COALESCE () समझाया गया

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

सिंटैक्स

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

COALESCE(value,...)

उदाहरण

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

SELECT COALESCE(null, 'Fish', 'Rabbit');

परिणाम:

Fish

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

Rabbit एक गैर-शून्य मान भी था, लेकिन यह Fish . के बाद आया और इसलिए इसे वापस नहीं किया गया।

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

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

SELECT COALESCE( null, null );

परिणाम:

NULL

अभिव्यक्ति

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

SELECT COALESCE( null, 2 * 10 );

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

20

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

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

SELECT
  PetName,
  PetType
FROM Pets;

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

PetName	PetType
------- -------
Meow	Cat
Woof	Dog
Tweet	Bird
Awk	NULL
Moo	Cow
Omph	NULL

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

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

SELECT
  PetName,
  COALESCE(PetType, 'Unknown') AS "PetType"
FROM Pets;

परिणाम:

PetName	PetType
------- -------
Meow	Cat
Woof	Dog
Tweet	Bird
Awk	Unknown
Moo	Cow
Omph	Unknown

इस मामले में हमने सभी NULL मानों को Unknown . स्ट्रिंग से बदल दिया है ।

हालांकि यह एक स्ट्रिंग होने की आवश्यकता नहीं है। यहां एक और उदाहरण दिया गया है जो NULL मानों को एक पूर्णांक से बदल देता है:

SELECT 
  EmployeeName,
  Salary,
  COALESCE(Salary, 0) AS "Salary (adjusted)"
FROM Employees;

परिणाम:

EmployeeName	Salary	Salary (adjusted)
--------------  ------  -----------------
Homer Einstein	NULL	0
Bart Hawking	100000	100000

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

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

SELECT COALESCE();

परिणाम:

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL 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. MySQL को MariaDB 10 में अपग्रेड करें (भाग 2 - MariaDB/MySQL 5.5 को संस्करण 10.0 में अपग्रेड करें)

  2. समर्पित सर्वर पर MySQL ट्यूनिंग की मूल बातें

  3. तालिका पंक्तियों की गणना करें

  4. उबंटू पर MySQL कैसे स्थापित और कॉन्फ़िगर करें

  5. रियल एस्केप स्ट्रिंग और पीडीओ