के भीतर नल और खाली स्ट्रिंग को प्रतिस्थापित करना मेरे पास एक स्तंभ है जिसमें NULL
या रिक्त स्थान (यानी ''
) मान हो सकते हैं। मैं उन दोनों मानों को 'UNKNOWN'
जैसे वैध मान के साथ प्रतिस्थापित करना चाहता हूं। मैंने पाया है कि विभिन्न समाधान तालिका के भीतर मूल्य को संशोधित करने का सुझाव देते हैं। हालांकि, यह इस मामले में एक विकल्प नहीं है कि डेटाबेस तीसरे पक्ष के आवेदन के लिए है जो विकसित और/या बहुत खराब तरीके से पैच किया गया है (वास्तव में मुझे लगता है कि मेरा रोट्टवेयर बेहतर काम कर सकता था)। मुझे चिंता है कि अंतर्निहित डेटा को संशोधित करने से एप्लिकेशन धूम्रपान धूम्रपान में पिघल सकता है।चयन कथन
मैं निम्न कमांड के रूपांतरों का प्रयास किया है:
COALESCE(Address.COUNTRY, 'United States') -- Won't replace empty string as it is not NULL
REPLACE(Address.COUNTRY, '', 'United States') -- Doesn't replace empty string
ISNULL(Address.COUNTRY, 'United States') -- Works for NULL but not empty string
मैं मैं CASE
बयान इस्तेमाल कर सकते हैं पता है लेकिन उम्मीद वहाँ एक और अधिक सुरुचिपूर्ण/कुशल समाधान है हूँ।
जब आप कहते हैं कि मैंने अपने विशिष्ट मुद्दे के समाधान की तलाश की है और मुझे कोई जवाब नहीं मिला है तो आपको मेरा विश्वास करना होगा। अगर मैंने कुछ अनदेखा किया है, तो कृपया मुझे हल्का रास्ता दिखाएं।
ऐसा लगता है कि ऐसा हुआ है। मेरे ऊपर बीयर है। हालांकि, मुझे आश्चर्य है कि यह काम करता है कि मेरी समझ यह है कि COALESCE फ़ंक्शन पहले गैर-शून्य मान को पकड़ लेगा। कथन में मैं पाठ स्ट्रिंग के विपरीत खाली स्थान वापस करने की अपेक्षा करता हूं ??? लेकिन, नीचे की रेखा, समाधान के लिए धन्यवाद। – mbadtk
इस कथन में दो कार्य हैं, एक 'NULLIF' जो खाली स्ट्रिंग को शून्य में परिवर्तित कर रहा है और फिर' coalesce' जो शून्य –
@rs के लिए जांचता है .: नोट: 'nullif' खाली स्ट्रिंग को शून्य में परिवर्तित नहीं करता है, यह लौटाता है शून्य अगर दो तर्क समान हैं;)। –