Il n'y a pas de fonction intégrée qui compte les occurrences de sous-chaîne dans une chaîne, mais vous pouvez calculer la différence entre la chaîne d'origine et la même chaîne sans virgule :
LENGTH(fooCommaDelimColumn) - LENGTH(REPLACE(fooCommaDelimColumn, ',', ''))
Il a été modifié plusieurs fois au cours de près de 8 ans maintenant (wow !), donc pour plus de clarté :la requête ci-dessus n'a pas besoin d'un + 1
, car les données OP ont une virgule supplémentaire à la fin.
Alors qu'effectivement, dans le cas général pour la chaîne qui ressemble à ceci :foo,bar,baz
l'expression correcte serait
LENGTH(col) - LENGTH(REPLACE(col, ',', '')) + 1