मुझे निम्नलिखित संदर्भ डेटा मिला है।एसक्यूएल चयन; स्ट्रिंग्स को जोड़ना, डबल कॉमा से परहेज करना जहां कॉलम शून्य हैं?
PERSON_NAME STREET TOWN COUNTY POSTCODE
------------------------------ ------------------------ ---------------- ---------------- ----------
David Smith 30 Johnson Street Norwich Norfolk NA38 3KL
John Brown Douglas Road Cambridge C8 9IJ
Jackie White 8 High Street Ipswich Suffolk IP7 2YT
Andrea Blue 9 Marlborough Ave Bury Suffolk IP4 0XC
Jemima Green Riverside Walk Colchester Essex CO6 7PR
James Gray 167 Hadleigh Place London SW1 4TU
मुझे क्या करना चाहते हैं, तो व्यक्ति नामों की सूची प्रदर्शित करने के लिए, साथ साथ उनके पते एक अल्पविराम से अलग स्ट्रिंग में concatenated है।
यह हिस्सा आसान है, मैंने ||
को कॉलम कॉलम और कॉमा सेपरेटर्स रखने के लिए उपयोग किया है।
जिस भाग में मैं सवाल कर रहा हूं, यह तथ्य है कि कुछ पंक्तियों में COUNTY
के लिए कुछ भी सूचीबद्ध नहीं है, इसलिए मुझे , ,
प्रदर्शित करने से बचने की आवश्यकता है।
मैंने अपने लिए कुछ शोध किया है, और डबल कॉमा को बदलने के लिए ओरेकल में SUBSTR का उपयोग करने का निर्णय लिया है, हालांकि यह थोड़ा "गंदे" महसूस करता है। जटिल कार्यों (जैसे this previous SO question) के उपयोग से परहेज करने के लिए ऐसा करने का एक क्लीनर तरीका है?
SELECT
SUPPNAME as "Supplier Name",
REPLACE(STREET || ', ' || TOWN || ', ' || COUNTY || ', ' || POSTCODE, ' ,','') as "Supplier Address"
FROM
SUPPLIERS
;
धन्यवाद
मैं अपने उत्तर हटा दिया गया क्योंकि मैंने पाया की शुरुआत में ',' एक अतिरिक्त दूर करने के लिए इस तरीके का प्रयास है कि (के रूप में मेरा मानना है कि यह SQL सर्वर में करता है) NULLs एक अशक्त उपज नहीं है साथ ओरेकल स्ट्रिंग concats में, जैसा आपने बताया है। मैंने केस स्टेटमेंट पर स्विच करना शुरू किया, लेकिन फिर आपका जवाब देखा - +1 –
+1। @ याहिया - तुमने मुझे एक बड़ा सिरदर्द बचाया। धन्यवाद! –