कोई अंतर्निहित फ़ंक्शन नहीं है जो स्ट्रिंग में सबस्ट्रिंग की घटनाओं की गणना करता है, लेकिन आप मूल स्ट्रिंग के बीच अंतर की गणना कर सकते हैं, और उसी स्ट्रिंग को अल्पविराम के बिना गणना कर सकते हैं:
LENGTH(fooCommaDelimColumn) - LENGTH(REPLACE(fooCommaDelimColumn, ',', ''))
अब लगभग 8 वर्षों के दौरान इसे कई बार संपादित किया गया था (वाह!), इसलिए स्पष्टता के लिए:उपरोक्त क्वेरी को + 1
की आवश्यकता नहीं है , क्योंकि OPs डेटा में एक अतिरिक्त अनुगामी अल्पविराम होता है।
जबकि वास्तव में, इस तरह दिखने वाले स्ट्रिंग के लिए सामान्य स्थिति में:foo,bar,baz
सही अभिव्यक्ति होगी
LENGTH(col) - LENGTH(REPLACE(col, ',', '')) + 1