Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में COALESCE फ़ंक्शन का उपयोग करके दो कॉलम को एक में संयोजित करना

समाधान: COALESCE() फ़ंक्शन

COALESCE() फ़ंक्शन अपने तर्कों में से पहला गैर-NULL मान लौटाता है। इसका उपयोग दो कॉलम को संयोजित करने के लिए किया जा सकता है जहां एक NULL हो सकता है।

सिंटैक्स

SELECT COALESCE(column1, column2) AS combined_column
FROM yourTableName;

व्यावहारिक उदाहरण

टेबल बनाना और डेटा डालना

mysql> CREATE TABLE combineTwoColumnsDemo (
    -> UserId INT,
    -> UserName VARCHAR(20),
    -> UserAge INT
    -> );

mysql> INSERT INTO combineTwoColumnsDemo VALUES
    -> (101, 'John', 23),
    -> (102, 'Carol', 20),
    -> (103, 'Bob', 25),
    -> (104, 'Mike', 26),
    -> (105, NULL, 23),
    -> (105, 'Maxwell', NULL);

मूल डेटा

UserIdUserNameUserAge
101John23
102Carol20
103Bob25
104Mike26
105NULL23
105MaxwellNULL

COALESCE क्वेरी

mysql> SELECT 
    -> UserName,
    -> UserAge,
    -> COALESCE(UserName, UserAge) AS Combine_UserName_UserAge
    -> FROM combineTwoColumnsDemo;

परिणाम

UserNameUserAgeCombine_UserName_UserAge
John23John
Carol20Carol
Bob25Bob
Mike26Mike
NULL2323
MaxwellNULLMaxwell

व्याख्या

  • पंक्ति 1-4: UserName गैर-NULL है, इसलिए UserName लौटाया जाता है
  • पंक्ति 5: UserName NULL है, इसलिए UserAge (23) लौटाया जाता है
  • पंक्ति 6: UserName गैर-NULL है, इसलिए Maxwell लौटाया जाता है

COALESCE vs IFNULL vs CASE

फ़ंक्शनतर्कमानक
COALESCE2 या अधिकANSI SQL
IFNULLकेवल 2MySQL-विशिष्ट
IF/CASEलचीलाANSI SQL

व्यावहारिक उपयोग मामले

  • फॉलबैक मान: COALESCE(phone, email, 'संपर्क नहीं')
  • डेटा सफाई: COALESCE(trimmed_col, original_col)
  • रिपोर्टिंग: COALESCE(commission, 0) गणना के लिए

नोट: डेटा प्रकार

COALESCE सभी तर्कों को सामान्य डेटा प्रकार में बदल देता है। संख्या और स्ट्रिंग मिश्रण में, परिणाम स्ट्रिंग होगा (जैसा कि उदाहरण में 23 स्ट्रिंग '23' बन गया)।

  1. - MySQL में दो टेबल पर एकल SELECT क्वेरी करना (कार्टेशियन उत्पाद)

    MySQL में दो टेबल पर कार्टेशियन उत्पाद (क्रॉस जॉइन) दो टेबल पर बिना जॉइन शर्त के SELECT करने से कार्टेशियन उत्पाद (क्रॉस जॉइन) उत्पन्न होता है: पहली टेबल की प्रत्येक पंक्ति दूसरी टेबल की प्रत्येक पंक्ति के साथ जुड़ती है। परिणाम पंक्तियाँ = पंक्तियाँ_टेबल1 × पंक्तियाँ_टेबल2। उदाहरण: दो असंबंधित टेबल

  1. - MySQL में दो कॉलम जोड़ें जब उनमें से एक का मान NULL हो

    क्वेरी चलाते समय किसी भी समस्या से बचने के लिए IFNULL() का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1793 ( StudentFirstName varchar(20), StudentLastName varchar(20) ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:

  1. - MySQL में एक क्वेरी से दो कॉलम कैसे अपडेट करें?

    MySQL में एक ही UPDATE स्टेटमेंट में एकाधिक कॉलम अपडेट करने के लिए, SET क्लॉज़ में कॉलम को कॉमा से अलग करके सूचीबद्ध करें। यह एटॉमिक ऑपरेशन सुनिश्चित करता है और क्वेरी ओवरहेड कम करता है। उदाहरण: FirstName और LastName एक साथ अपडेट करना डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1909 ( Id