史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 程式 & 網頁設計技術文件
忘記密碼?
註冊帳號 論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-05-26, 10:56 PM   #1 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 硬體 - 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級別.
psac 目前離線  
送花文章: 3, 收花文章: 1624 篇, 收花: 3187 次
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 09:35 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2018, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1