सेट कोल को 0.00 पर अपडेट करें यदि शून्य या गणना मूल्य - mysql, sql

मैं एक स्तंभ को 0.00 पर सेट करने की कोशिश कर रहा हूं यदि यह नल है, या गणना की गई मान अगर यह शून्य नहीं है।

नीचे दी गई तालिका में, अधिकतम स्कोर हमेशा सेट नहीं किया जा सकता है, और परिकेंट कॉल कभी-कभी न्यूल दिखाता है, जो फ्रंट एंड डिस्प्ले में अजीब दिखता है।

मैं निम्नलिखित एसक्यूएल की कोशिश कर रहा था, जो किसी भी त्रुटि को फेंक नहीं देता है, और यह काम नहीं करता है, जिसका अर्थ है कि कुछ गलत है।

मैं यह अधिकार कैसे सेट कर सकता हूं?

तालिका

"studentId" "maxScore"  "studentScore"  "stdPerCent"
"1"         "100"       "25"            "25.00"
"2"         "0"         "0"             NULL

Sql

update scores SET stdPerCent = if(NULL,"0.00",TRUNCATE(100*studentScore/maxScore,2));

उत्तर:

जवाब के लिए 2 № 1

मुझे लगता है कि मामले के मुकाबले कोलेस का उपयोग करना आसान है (और पढ़ने के लिए) जब:

UPDATE scores
SET stdPerCent = COALESCE(TRUNCATE(100*studentScore/maxScore,2), "0.00")

संपादित करें: और यदि आप केवल नल फ़ील्ड भरने की कोशिश कर रहे हैं और आप जानते हैं कि गैर-नल फ़ील्ड पहले से ही ठीक से गणना की गई हैं, तो इससे अधिक समझ आएगी:

UPDATE scores
SET stdPerCent = "0.00"
WHERE stdPerCent IS NULL

संबंधित सवाल
सबसे लोकप्रिय