web-dev-qa-db-fra.com

Comment trouver le nombre d'occurrences d'un caractère particulier dans une chaîne en utilisant SQL?

Comment trouver le nombre d'occurrences d'un caractère particulier dans une chaîne en utilisant SQL?

Exemple: je veux trouver le nombre de fois la lettre "d" apparaît dans cette chaîne.

declare @string varchar(100)
select @string = 'sfdasadhfasjfdlsajflsadsadsdadsa'
24
NImesh

Voici:

declare @string varchar(100)
select @string = 'sfdasadhfasjfdlsajflsadsadsdadsa'
SELECT LEN(@string) - LEN(REPLACE(@string, 'd', '')) AS D_Count
56
Mladen Prajdic

Si vous voulez en faire un peu plus général, vous devriez diviser par la durée de la chose que vous recherchez. Comme ça:

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

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

C'est parce que chaque fois que vous trouvez 'rob', vous retirez trois caractères. Donc, lorsque vous retirez six caractères, vous avez trouvé "Rob" deux fois.

13
Rob Farley

Pour tout ce que vous êtes sybase ASE 15 dinosaures notre connexion, vous devrez remplacer '' avec NULL, c'est-à-dire.

SELECT LEN(@string) - LEN(REPLACE(@string, 'd', null)) AS D_Count
0
Tiggyboo