यदि एक चयन कथन में मैं एक समेकित स्ट्रिंग का चयन कर रहा हूं जो कि मैं जिस तालिका से चयन कर रहा हूं उससे मूल्यों का उपयोग करता हूं, NULL को संभालने का सबसे अच्छा तरीका क्या है उन मूल्यों के लिए ताकि मेरे पास अभी भी मेरी स्ट्रिंग हो? के रूप में, अगर मैं एक उपयोगकर्ता के लिए शहर, राज्य, और देश का चयन कर रहा हूँ, और मैं एक तिहाई क्षेत्र है कि उन सब को संयोजित करता हैं:टी-एसक्यूएल: स्ट्रिंग कॉन्सटेनेशन में नल मानों को संभालने का सबसे अच्छा तरीका
SELECT City, State, Country,
City + ', ' + State + ', ' + Country AS 'Location'
FROM Users
हालांकि, 'स्थान' शून्य है अगर तीन क्षेत्रों में से किसी है न्यूल (जो तब भी होता है जब उपयोगकर्ता यूएस से नहीं होता)।
SELECT City, State, Country,
City + ', ' + COALESCE(State + ', ', '') + Country AS 'Location'
FROM Users
लेकिन मुझे यकीन है कि अगर यह सिर्फ एक हैक था नहीं था और अगर वहाँ यह करने के लिए एक बेहतर तरीका है:
मेरे वर्तमान समाधान यह है। विचार?
'coalesce' इस के लिए एक मानक अभ्यास है। आपके मामले में आपको केवल 'isnull' की आवश्यकता होगी। [एनएलएल के साथ एसक्यूएल सर्वर स्ट्रिंग कंसटेनेशन] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/2916791/sql-server-string-concatenation-with-null) btw – bzlm
@bzlm ओह! आप सही हे। निश्चित नहीं है कि जब मैंने शीर्षक खोजा या दर्ज किया तो यह क्यों नहीं हुआ। शायद क्योंकि मैं विशेष रूप से "टी-एसक्यूएल" डालता हूं। बंद करने के लिए वोटिंग। अपना खुद का प्रश्न बंद करने के लिए मतदान करना हमेशा थोड़ा अजीब होता है। इससे गुदगुदी होती है। – JoeCool
@bzlm "डुप्लिकेट" प्रश्न का उत्तर मुझे उत्तेजित नहीं करता है। यह कॉलम के बीच delimiters को संबोधित नहीं करता है। – RichardTheKiwi