Saturday, 15 March 2014

mysql - Why does SQL NOT EXISTS return 1 record of all NULL values -


निम्न पर:

  तालिका tbl बनाएं (col1 int, col2 int, col3 int ); टीबीएल मूल्यों में डालें (1,1,1); टीबीएल मूल्यों में डालें (1,1,1);  

मैं कर रहा हूँ (टी 2 से सी 2, सी 2 के रूप में 2, सी 3 के रूप में 2 का चयन करें) मौजूद नहीं है, जहां टीबी से राशि (कॉल 1) सी 1, राशि (कॉल 2) सी 2, राशि (कॉल 2) सी 3 चुनें यह 0 रिकॉर्ड वापस करने की उम्मीद है इसके बजाय यह रिक्त मानों का 1 रिकॉर्ड देता है क्या आप मुझे बता सकते हैं?

पीएस मैं यह समझने की कोशिश कर रहा हूं कि व्यवहार मौजूद नहीं है।

यह EXISTS । आपका नहीं मौजूदा को FALSE का मूल्यांकन करता है, क्योंकि SELECT 2 as c1, 2 as c2, 2 as c3 हमेशा एक पंक्ति देता है इसका अर्थ है कि आपकी क्वेरी समतुल्य है:

  SELECT SUM (col1) c1, SUM (col2) c2, SUM (col3) c3 से tbl WHERE 0  

यह कह कर, यह वास्तव में SUM शब्दों के बारे में है एक खाली सेट में SUM भी एक मान वापस करनी चाहिए, और इस मामले में मान NULL है।

से:

SUM (एक्सपीआर)

एक्सप्र की राशि देता है यदि रिटर्न सेट में कोई पंक्ति नहीं है, तो SUM () NULL रिटर्न देता है।

SUM () नल देता है अगर कोई मिलान पंक्तियाँ नहीं हैं।


No comments:

Post a Comment