2008-11-13 13 views
21

एसक्यूएल का उपयोग कर स्ट्रिंग में किसी विशेष वर्ण की घटनाओं की संख्या को आप कैसे पा सकते हैं?एसक्यूएल का उपयोग कर स्ट्रिंग में किसी विशेष वर्ण की घटनाओं की संख्या को आप कैसे पा सकते हैं?

उदाहरण: मैं इस स्ट्रिंग में अक्षर 'डी' प्रकट होने की संख्या को ढूंढना चाहता हूं।

declare @string varchar(100) 
select @string = 'sfdasadhfasjfdlsajflsadsadsdadsa' 
+0

कौन सा डेटाबेस? MySQL शायद? –

+0

कृपया इसे एक और वर्णनात्मक शीर्षक दें, आपको बेहतर परिणाम दिखाई देंगे। – Jeff

+0

उत्तर शायद डेटाबेस-विशिष्ट होने जा रहा है, इसलिए कृपया सभी को बताएं कि आप किस डेटाबेस का उपयोग कर रहे हैं। –

उत्तर

49

ये रहा:

declare @string varchar(100) 
select @string = 'sfdasadhfasjfdlsajflsadsadsdadsa' 
SELECT LEN(@string) - LEN(REPLACE(@string, 'd', '')) AS D_Count 
+0

प्यारा, मैं charindex के साथ पुनरावृत्ति करने की सोच रहा था, मुझे यह बहुत बेहतर पसंद है। – vfilby

+0

मैं vfilby से सहमत हूं और SQL Server 2005 और 2008 में इस कोड को काम करने की पुष्टि कर सकता हूं। – xsl

+0

मैं भी सहमत हूं ... आपकी मदद के लिए बहुत कुछ ... यह काम किया ... thx एक बार फिर .. –

12

आप इसे एक छोटे से अधिक सामान्य, आप बात आप देख रहे हैं की लंबाई से विभाजित करना चाहिए बनाना चाहते हैं। इस तरह:

declare @searchstring varchar(10); 
set @searchstring = 'Rob'; 

select original_string, 
(len(orginal_string) - len(replace(original_string, @searchstring, '')) 
/len(@searchstring) 
from someTable; 

ऐसा इसलिए है क्योंकि हर बार जब आप 'रोब' पाते हैं, तो आप तीन वर्ण हटाते हैं। तो जब आप छह अक्षर हटाते हैं, तो आपको दो बार 'रोब' मिल जाता है।

+0

यह आंकड़े आप 'someTable' नामक एक तालिका से पूछताछ कर रहे हैं जिसमें' original_string' नामक कॉलम है। और सिद्धांत किसी भी डेटाबेस में काम करेगा, आपको केवल समकक्ष कार्यों को खोजने की आवश्यकता है। –

संबंधित मुद्दे

 संबंधित मुद्दे