SQL Server 2008 で文字列の数字を数える最も簡単な方法は、元の文字列の長さと、すべての数字文字 (0..9) を取り除いたときの長さの差を数えることです。クエリは次のようになります。
(LEN(headline) * 10) - LEN(REPLACE(headline, '0', '') +
REPLACE(headline, '1', '') +
REPLACE(headline, '2', '') +
REPLACE(headline, '3', '') +
REPLACE(headline, '4', '') +
REPLACE(headline, '5', '') +
REPLACE(headline, '6', '') +
REPLACE(headline, '7', '') +
REPLACE(headline, '8', '') +
REPLACE(headline, '9', ''))
最初に各置換または連結文字列の長さを計算してから、そのすべての長さを計算する方が速いかどうかをテストする必要がありますが、文字列が非常に長くない場合、パフォーマンスの点ではどちらの方法もほぼ同じである必要があります。別の、連結されていないもう少し読みにくいバージョンは次のとおりです。
LEN(headline) -
LEN(REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(headline, '9', ''),
'8', ''),
'7', ''),
'6', ''),
'5', ''),
'4', ''),
'3', ''),
'2', ''),
'1', ''),
'0', ''))
しかし、それによって視覚的に魅力的になったかどうかはよくわかりません (SQL Server 2008 では実際に正規表現を使用できます)。文字列の桁数を決定する方法が必要な場合は、検討する価値のある別のアプローチについては、このブログで説明しています。
乾杯!;)