[SQL Server] 如何辨別欄位中的數據是否包含繁體中文字?

背景:
今天好不幸運,因為資料出錯的關係需要找出在SQL Server內某一資料表中某個欄位含有中文的 record (s)。SQL Server當然....沒有預載這個功能啦。所以只好自己寫一隻T-SQL。囧

方法原理:
這次會用到的是patindex這個功能。patindex 的作用是傳回指定之運算式中的模式,在所有有效文字和字元資料類型中第一次出現的起始位置,如果找不到模式,便傳回零[1]。簡單點來說如果沒有發現中文字傳回零,否則傳回非零數字。這樣就可以判斷欄位是否有中文字了。

例子:
SELECT *
from <你想要尋找的資料表>
where patindex('%[一-龜]%',<你想要判斷的欄位>) > 0

為什麼一定 "一" 到 "龜"呢?因為ASCII中繁體中文字的範圍剛好是40869,那就是說如果找到ASCII碼在此範圍的字一定是中文囉。


希望對於大家有點小幫助,如果以上論點有問題歡迎提出給小弟一次機會更正喔 :-)。

參考:
http://msdn.microsoft.com/zh-tw/library/ms188395.aspx

Popular posts from this blog

[SQL SERVER] 找出LOCK方法懶人包

[SQL Server] 解決log檔(ldf file)過度膨脹的實戰經驗

[開箱] Dell P2415Q 4K螢幕開箱