现在的位置: 首页 > 综合 > 正文

SQL 计算一個字符串在另一个字符串中出現的次数

2013年03月11日 ⁄ 综合 ⁄ 共 414字 ⁄ 字号 评论关闭
程序员最喜欢的衬衫

在sqlserver中來計算一個字符串在另一個字符串中出現的次數,通常會去用循環來匹配,然後計算出出現的次數,這樣的效能不是很高。現在講一種比較簡單的方法也能實現同樣的功能,思路如下:

1 設有字符串str1 str2 ,現在要求str1 在 str2中出現的次數。

2 將str1後面加上一個字符,如:str1+'_',設更改後的字符串為str3。

3 在str2中如果有子串str1 ,將之替換成str3,替換後的字符串設為str4。

4 str4與str2的長度之差即為str1在str2中出現的次數。

看下面这个函数

CREATE  function fn_SCountOneWordOnOtherWord
(
    @Word NVARCHAR(200),
    @WordAll NVARCHAR(2000)
)
RETURNS CHAR(4)
AS
BEGIN
    RETURN  len(replace(@WordAll,@Word,@Word+'_'))-len(@WordAll)
END

【上篇】
【下篇】

抱歉!评论已关闭.