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 回答