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