2011-07-10 34 views
2

对varchar中发生的varchar进行计数的最佳方式是什么?如何在使用TSQL的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 Server 2005中

回答

6

你可以使用replace使每出现1个字符长,算上添加的字符数:

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

Full example at SE Data.

+0

+1这是一个要命的答案 –

相关问题