本篇文章主要介绍了"SQL Server 字段提取拼音首字母",主要涉及到方面的内容,对于SqlServer感兴趣的同学可以参考一下:
目前工作中遇到一个情况,需要将SQL Server中的一个字段提取拼音的首字母,字段由汉字、英文、数字以及“-”构成,百度了一堆,找到如...
目前工作中遇到一个情况,需要将SQL Server中的一个字段提取拼音的首字母,字段由汉字、英文、数字以及“-”构成,百度了一堆,找到如下方法,记录一下,以备后用!
首先建立一个函数
--生成拼音首码 CREATEfunction fn_GetPy(@strnvarchar(4000))
returnsnvarchar(4000)
--WITH ENCRYPTION asbegindeclare@intLenintdeclare@strRetnvarchar(4000)
declare@tempnvarchar(100)
set@intLen=len(@str)
set@strRet=''while@intLen>0beginset@temp=''select@temp=casewhensubstring(@str,@intLen,1) >='帀'then'Z'whensubstring(@str,@intLen,1) >='丫'then'Y'whensubstring(@str,@intLen,1) >='夕'then'X'whensubstring(@str,@intLen,1) >='屲'then'W'whensubstring(@str,@intLen,1) >='他'then'T'whensubstring(@str,@intLen,1) >='仨'then'S'whensubstring(@str,@intLen,1) >='呥'then'R'whensubstring(@str,@intLen,1) >='七'then'Q'whensubstring(@str,@intLen,1) >='妑'then'P'whensubstring(@str,@intLen,1) >='噢'then'O'whensubstring(@str,@intLen,1) >='拏'then'N'whensubstring(@str,@intLen,1) >='呒'then'M'whensubstring(@str,@intLen,1) >='垃'then'L'whensubstring(@str,@intLen,1) >='咔'then'K'whensubstring(@str,@intLen,1) >='丌'then'J'whensubstring(@str,@intLen,1) >='铪'then'H'whensubstring(@str,@intLen,1) >='旮'then'G'whensubstring(@str,@intLen,1) >='发'then'F'whensubstring(@str,@intLen,1) >='妸'then'E'whensubstring(@str,@intLen,1) >='咑'then'D'whensubstring(@str,@intLen,1) >='嚓'then'C'whensubstring(@str,@intLen,1) >='八'then'B'whensubstring(@str,@intLen,1) >='吖'then'A'elsertrim(ltrim(substring(@str,@intLen,1)))
end--对于汉字特殊字符,不生成拼音码 if (ascii(@temp)>127) set@temp=''--对于英文中小括号,不生成拼音码 if@temp='('or@temp=')'set@temp=''select@strRet=@temp+@strRetset@intLen=@intLen-1endreturnlower(@strRet)
end
执行语句
SELECT 需转换中文字段, dbo.fn_GetPy(中文字段) AS 列别名
FROM 表名称
感谢:Luckeryin
以上就介绍了SQL Server 字段提取拼音首字母,包括了方面的内容,希望对SqlServer有兴趣的朋友有所帮助。
本文网址链接:http://www.codes51.com/article/detail_149055.html