文字列内の部分文字列の出現をカウントする組み込み関数はありませんが、元の文字列とカンマなしの同じ文字列との差を計算できます。
LENGTH(fooCommaDelimColumn) - LENGTH(REPLACE(fooCommaDelimColumn, ',', ''))
これは、ほぼ8年間に何度も編集されたため(すごい!)、わかりやすくするために、上記のクエリには+ 1
は必要ありません。 、OPデータには余分な末尾のコンマがあるためです。
確かに、一般的に次のような文字列の場合:foo,bar,baz
正しい式は次のようになります
LENGTH(col) - LENGTH(REPLACE(col, ',', '')) + 1