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

मारियाडीबी में एनवीएल () कैसे काम करता है

मारियाडीबी 10.3 से, NVL() IFNULL() . के लिए एक उपनाम के रूप में इस्तेमाल किया जा सकता है समारोह। इसलिए, दोनों फ़ंक्शन हमें NULL मानों को दूसरे मान से बदलने में सक्षम बनाते हैं।

सिंटैक्स

NVL(expr1,expr2)

अगर expr1 NULL नहीं है , NVL() रिटर्न expr1 ; अन्यथा यह expr2 returns लौटाता है

दिया गया NVL() IFNULL() . के लिए एक उपनाम है , हम निम्नलिखित सिंटैक्स का भी उपयोग कर सकते हैं:

IFNULL(expr1,expr2)

उपरोक्त दोनों सिंटैक्स एक ही परिणाम देते हैं।

उदाहरण

यहां एक बुनियादी उदाहरण दिया गया है जो NULL . का उपयोग करता है स्थिर:

SELECT NVL( null, 'No Value' );

परिणाम:

No Value

इस मामले में, मैंने NVL() . का इस्तेमाल किया NULL मान को No Value से बदलने के लिए ।

यहाँ क्या होता है जब पहला तर्क NULL नहीं होता है :

SELECT NVL( 'Spicy', 'No Value' );

परिणाम:

Green

इस मामले में, पहला तर्क दिया जाता है, क्योंकि यह NULL नहीं है ।

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

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

SELECT * FROM Employees;

परिणाम:

empId	name	dept
-----   -----   -----
1	Jess	Sales
2	Rohit	NULL
3	Zohan	Sales
4	Homer	NULL

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

निम्नलिखित क्वेरी में, हम NVL() use का उपयोग करते हैं NULL मानों को पाठक के लिए अधिक सार्थक मान से बदलने के लिए:

SELECT
    empId,
    name,
    NVL( dept, 'Not yet assigned' ) AS dept
FROM Employees;

परिणाम:

empId	name	dept
-----   -----   ----------------
1	Jess	Sales
2	Rohit	Not yet assigned
3	Zohan	Sales
4	Homer	Not yet assigned

अभिव्यक्ति

पहले तर्क के वर्तमान मूल्य का मूल्यांकन किया जाता है। इसलिए, यदि हम निम्नलिखित की तरह एक अभिव्यक्ति प्रदान करते हैं:

SELECT NVL( 4 * 10, 0 );

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

40

इसलिए, हमें 4 * 10 नहीं मिलता है अंश। हमें उस अभिव्यक्ति का परिणाम मिलता है (जो इस मामले में 40 . है )।

वही सच है जब व्यंजक का परिणाम NULL . है :

SELECT NVL( 4 / 0, 0 );

परिणाम:

0.0000

हालाँकि, यह एक खतरनाक उदाहरण है। शून्य एक मूल्य है। NULL क्या नहीं है।

NULL मान होने पर शून्य लौटाना भ्रामक या पूरी तरह से गलत भी हो सकता है। कल्पना कीजिए कि अगर हम कीमतों से निपट रहे थे। हम शून्य की कीमत के साथ समाप्त हो सकते हैं, जो गलत हो सकता है और व्यवसाय को बहुत अधिक पैसा खर्च करना पड़ सकता है।

ऐसे मामलों में आमतौर पर अधिक सार्थक मूल्य का उपयोग करना बेहतर होता है जो पाठक को बताता है कि कोई मूल्य नहीं है।

उदाहरण:

SELECT NVL( 4 / 0, 'No value' );

परिणाम:

No Value

IFNULL() समारोह

जैसा कि बताया गया है, NVL() IFNULL() . के लिए एक उपनाम है . इसलिए, हम NVL() . को बदल सकते हैं IFNULL() . के साथ उपरोक्त किसी भी उदाहरण में।

उदाहरण:

SELECT IFNULL( 4 / 0, 'No value' );

परिणाम:

No Value

  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 में ProxySQL क्लस्टरिंग का अवलोकन

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

  3. कैसे MariaDB में अग्रणी शून्य के साथ एक नंबर पैड करने के लिए?

  4. MySQL प्रतिकृति से MySQL Galera क्लस्टर 4.0 में माइग्रेट करने के लिए युक्तियाँ

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