इस तरह के "ट्रिमिंग" कॉमा से निपटने का एक तरीका CASE
. का उपयोग करना होगा कथन:
CASE
WHEN str LIKE ',%,' THEN SUBSTRING(str, 2, LEN(str)-2)
WHEN str LIKE ',%' THEN RIGHT(str, LEN(str)-1)
WHEN str LIKE '%,' THEN LEFT(str, LEN(str)-1)
ELSE str
END
यह बहुत ही आत्म-व्याख्यात्मक है:CASE
कथन तीन स्थितियों पर विचार करता है -
- जब स्ट्रिंग
str
दोनों तरफ अल्पविराम है, - जब स्ट्रिंग
str
अल्पविराम से शुरू होता है, लेकिन एक में समाप्त नहीं होता, और - जब स्ट्रिंग
str
अल्पविराम में समाप्त होता है, लेकिन एक में शुरू नहीं होता है।
पहले मामले में, पहले और आखिरी अक्षर हटा दिए जाते हैं; दूसरे मामले में, सबसे बाएं वर्ण को हटा दिया जाता है; अंतिम स्थिति में, पिछला वर्ण हटा दिया जाता है।