|
論壇說明 | 標記討論區已讀 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2006-05-26, 10:56 PM | #1 (permalink) |
榮譽會員
|
硬體 - 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級別. |
送花文章: 3,
|