最近需要在SQL的字串中截取漢字,利用unicode函數判斷字元的unicode編碼,根據編碼範圍過濾掉非漢字字元。
寫成了一個function
/*@str 需要取得漢字的字串*/
create function CharRep(@str nvarchar(200))
returns nvarchar(200) , @char nvarchar(1), @zh nvarchar(200)
set @i = 1 set @zh = ''
while @i begin
set @char = substring(@str)
begin
set @char = substring( @i, 1)
if unicode(@char) between 19968 And 40869
set @zh = @zh + @char
set @i = @i + 1
end🜎 .CharRep('儂好a/bc 儂好')
結果 a/bc
附:
unicode或編碼範圍:
漢字:[0x4e00,0x9fa5](或編碼範圍:漢字:[0x4e00,0x9fa5](或編碼範圍:
漢字:[0x4e00,0x9fa5](或十進位[19968) 0x30,0x39](或十進位[48, 57])搜尋小寫字母:[0x61,0x7a](或十進位[97, 122])
大寫字母:[0x41,0x5a](或十進位[65, 90])