2

varchar 内の varchar の出現を数える最良の方法は何ですか。

特定の組み合わせを見つけるためにテキストをループすることはありません。

この選択は最初のものだけを見つけます

SELECT CASE WHEN CHARINDEX('!','HOW MANY TIMES IS ! IN THIS TEXT ? THIS IS MY QUESTION !' ) > 0 THEN 1 ELSE 0 END

1 を返します

一致の総数を見つける方法が必要です

TABLE DATA
SEARCHTEXT     LONGTEXT
!              HOW MANY TIMES IS ! IN THIS TEXT ? THIS IS MY QUESTION !
HELLO          HELLO HELLO HELLO HELLO HELLO HELLO
L              HELLO HELLO HELLO HELLO HELLO HELLO
e              more testdata

期待される結果

Count SEARCHTEXT  LONGTEST
2     !           MANY TIMES IS ! IN THIS TEXT ? THIS IS MY QUESTION !
6     HELLO       HELLO HELLO HELLO HELLO HELLO HELLO
12    L           HELLO HELLO HELLO HELLO HELLO HELLO
2     e           more testdata

mssql サーバー 2005 の使用

4

1 に答える 1

6

replace各出現を 1 文字長くし、追加された文字数をカウントするために使用できます。

select  len(replace(txt, search, search + '#')) - len(txt) as Count
,       *
from    YourTable

完全な例は SE Data にあります。

于 2011-07-10T14:58:23.823 に答える