2008-11-13 21 views
21

Belirli bir karakterin gerçekleştirilme sayısını sql kullanarak bir dizede nasıl bulabilirsiniz?Belirli bir karakterin gerçekleştirilme sayısını sql kullanarak bir dizede nasıl bulabilirsiniz?

Örnek: Bu dizede ‘d’ harfinin kaç kez göründüğünü bulmak istiyorum. İşte

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

Hangi veritabanı? MySQL belki? –

+0

Lütfen daha açıklayıcı bir başlık verin, daha iyi sonuçlar göreceksiniz. – Jeff

+0

Yanıt muhtemelen veritabanına özgü olacak, bu yüzden lütfen herkese kullandığınız veritabanını bildirin. –

cevap

49

gitmek:

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

Sevimli, ben charindex ile tekrarlamayı düşünüyordum, bunu çok daha iyi seviyorum. – vfilby

+0

Vfilby ile aynı fikirdeyim ve bu kodun SQL Server 2005 ve 2008'de çalıştığını onaylayabiliriz. – xsl

+0

Ben de hemfikirim ... yardımlarınız için çok teşekkürler ... işim var ... thx bir kez daha .. –

12

bunun biraz daha genel, size aradığınız şey uzunluğuna bölmek gerekir olmak için. Bunun gibi:

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

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

Bunun nedeni, 'Rob' bulduğunuz her seferinde üç karakteri kaldırmanızdır. Yani altı karakteri kaldırdığınızda, iki kez 'Rob' buldunuz.

+0

Bu, "original_string" adında bir sütunu olan "someTable" adlı bir tabloyu sorguladığınızı gösteriyor. Ve prensip herhangi bir veritabanında çalışacaktır, sadece eşdeğer fonksiyonları bulmanız gerekir. –

İlgili konular