MSSQL計算兩個字符串中相同漢字的個數
下午由於工作需要,作了一個函數,用來計算兩個字符串中相同漢字的個數,如果對一個表操作,就可以找出和指定字符串最相似的字符串.
1分解字符串函數 可以把一個字符串分解為單個的字符,以結果集形式返回 代碼 (雙擊代碼複製到粘貼板)CREATE FUNCTION funSplitChar ( @strA Nvarchar(100) ) RETURNS @Result table (Item nvarchar(1)) AS BEGIN declare @nC int select @nc=1 while @nc<=len(@strA) begin insert @result select substring(@stra,@nc,1) select @nc=@nc+1 end return END declare @a nvarchar(100) select @a=N'中華人民共和國' select * from dbo.funSplitchar(@a) 返回的結果是 Item ---- 中 華 人 民 共 和 國 2.計算相同字符的個數 代碼 (雙擊代碼複製到粘貼板)CREATE FUNCTION funCompareString ( @StrA nvarchar(200), @StrB nvarchar(200) ) RETURNS int AS BEGIN --set base string declare @strBase nvarchar(200) declare @Rank int select @rank=0 if len(@stra)>len(@strb) select @rank=count(*) from funSplitChar(@strb) where item in(select item from funSplitChar(@stra)) else select @rank=count(*) from funSplitChar(@strA) where item in(select item from funsplitchar(@strB)) --reture result return @Rank END declare @a nvarchar(100),@b nvarchar(100) select @a=N'中國',@b=N'中華人民共和國' select dbo.funCompareString(@a,@b) 返回的結果是 2 這只是把字符串拆分為單個的字符,當然,很難作到拆分為詞. 這在字符串比較時,只能作為一個參考,計算兩個字符串相似的rank級別. |
所有時間均為台北時間。現在的時間是 05:43 PM。 |
Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.
『服務條款』
* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *