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

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

मारियाडीबी में, IFNULL() फ़ंक्शन हमें NULL मानों को दूसरे मान से बदलने की अनुमति देता है।

सिंटैक्स

IFNULL(expr1,expr2)

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

इसके अलावा, मारियाडीबी 10.3 से, NVL() IFNULL() . के लिए एक उपनाम के रूप में इस्तेमाल किया जा सकता है समारोह। इसलिए, हमारे पास इसके बजाय निम्नलिखित सिंटैक्स का उपयोग करने का विकल्प है:

NVL(expr1,expr2)

परिणाम वही है, चाहे किसी भी सिंटैक्स का उपयोग किया गया हो।

उदाहरण

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

SELECT IFNULL( null, 'No Value' );

परिणाम:

No Value

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

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

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

परिणाम:

Spicy

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

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

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

SELECT * FROM Employees;

परिणाम:

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

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

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

SELECT
    empId,
    name,
    IFNULL( 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 IFNULL( 3 * 7, 0 );

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

21

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

वही सच है जब व्यंजक का परिणाम NULL . है . उदाहरण के लिए, यदि हम निम्नलिखित कोड चलाते हैं:

SELECT IFNULL( 3 / 0, 0 );

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

0.0000

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

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

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

उदाहरण:

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

परिणाम:

No Value

NVL() समारोह

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

उदाहरण:

SELECT NVL( 3 / 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 1.5 - स्वचालित बैकअप सत्यापन, बैकअप और क्लाउड एकीकरण से दास बनाएँ

  2. हमारे अपने कुत्ते का खाना खा रहे हैं - मारियाडीबी पर जीरा चलाना

  3. मारियाडीबी में तारीख किस तिमाही से संबंधित है, यह जानने के 2 तरीके

  4. मारियाडीबी में सीएचआर () कैसे काम करता है

  5. मैक पर मारियाडीबी स्थापित करें