1. ホーム
  2. sql-server

[解決済み] 文字列中に特定の文字が出現する回数

2023-03-26 23:24:38

質問

MS SQL Serverで、文字列中の特定の文字の出現回数をカウントする関数はありますか?

どのように解決するのですか?

直接の関数はありませんが、置換でできます。

declare @myvar varchar(20)
set @myvar = 'Hello World'

select len(@myvar) - len(replace(@myvar,'o',''))

基本的にこれは、いくつの文字が削除されたか、したがっていくつのインスタンスがあったかを教えてくれます。

おまけ。

上記は、検索される文字列の長さで割ることによって、複数文字列の出現回数を数えるように拡張することができます。例えば

declare @myvar varchar(max), @tocount varchar(20)
set @myvar = 'Hello World, Hello World'
set @tocount = 'lo'

select (len(@myvar) - len(replace(@myvar,@tocount,''))) / LEN(@tocount)