SqlServer 笔记二 获取汉字的拼音首字母
一、该函数传入字符串,返回数据为:如果为汉字字符,返回该字符的首字母,如果为非汉字字符,则返回本身。
二、用到的知识点:汉字对应的UNICODE值,汉字的排序规则。
三、数据库函数:
CREATE FUNCTION GetInitialLetter(@ChineseString NVARCHAR(4000))
RETURNS NVARCHAR(4000)
AS
BEGIN DECLARE @SingleCharacter NCHAR(1),
@ReturnString NVARCHAR(4000)
SET @ReturnString = '' WHILE LEN(@ChineseString)>0
BEGIN --依次取单个字符
SET @SingleCharacter = LEFT(@ChineseString,1) ----汉字字符,返回字符对应首字母,非汉字字符,返回原字符
IF(UNICODE(@SingleCharacter) BETWEEN 19968 AND 19968+20901)
SET @ReturnString = @ReturnString +
(SELECT TOP 1 PY FROM
(SELECT 'A' AS PY,N'骜' AS ChineseCharacters
UNION All SELECT 'B',N'簿'
UNION All SELECT 'C',N'错'
UNION All SELECT 'D',N'鵽'
UNION All SELECT 'E',N'樲'
UNION All SELECT 'F',N'鳆'
UNION All SELECT 'G',N'腂'
UNION All SELECT 'H',N'夻'
UNION All SELECT 'J',N'攈'
UNION All SELECT 'K',N'穒'
UNION All SELECT 'L',N'鱳'
UNION All SELECT 'M',N'旀'
UNION All SELECT 'N',N'桛'
UNION All SELECT 'O',N'沤'
UNION All SELECT 'P',N'曝'
UNION All SELECT 'Q',N'囕'
UNION All SELECT 'R',N'鶸'
UNION All SELECT 'S',N'蜶'
UNION All SELECT 'T',N'箨'
UNION All SELECT 'W',N'鹜'
UNION All SELECT 'X',N'鑂'
UNION All SELECT 'Y',N'韵'
UNION All SELECT 'Z',N'咗'
)SpellingTable
where ChineseCharacters > = @SingleCharacter COLLATE Chinese_PRC_CS_AS_KS_WS
ORDER by PY ASC)
ELSE
SET @ReturnString = @ReturnString + @SingleCharacter SET @ChineseString = RIGHT(@ChineseString,LEN(@ChineseString)-1) END RETURN @ReturnString END
GO
四、函数调用:
SELECT dbo.GetInitialLetter('中华人民共和国(1949 - 2016)')
返回:
ZHRMGHG(1949 - 2016)
后记说明:
1、unicode 字符是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案,世界上的任何字符都有唯一对应的一组十六进制表示(例 ‘汉’:6C49),汉字对应的范围转换为十进制之后是:19968 - 40869.
2、临时表 SpellingTable 字段 ChineseCharacters 中存储的汉字,以对应的 PY 字段开头的汉语拼音的最后一个汉字。 可查新华字典:http://xh.5156edu.com/pinyi.html


SqlServer 笔记二 获取汉字的拼音首字母的更多相关文章
- (转载)delphi中获取汉字的拼音首字母
delphi中获取汉字的拼音首字母1.py: array[216..247] of string = ({216}'CJWGNSPGCGNESYPB' + 'TYYZDXYKYGTDJNMJ' + ' ...
- sql获取汉字的拼音首字母的函数
ql获取汉字的拼音首字母 if exists (select * from sysobjects where id = object_id(N'[fn_ChineseToSpell]') and ...
- C# 获取汉字的拼音首字母和全拼(含源码)
C# 获取汉字的拼音首字母 一种是把所有中文字符集合起来组成一个对照表:另一种是依照汉字在Unicode编码表中的排序来确定拼音的首字母.碰到多音字时就以常用的为准(第一种方法中可以自行更改,方法为手 ...
- 获取汉字的拼音首字母--pinyin
var pinyin = (function (){ var Pinyin = function (ops){ this.initialize(ops); }, options = { checkPo ...
- sql获取汉字的拼音首字母
if exists (select * from sysobjects where id = object_id(N'[fn_ChineseToSpell]') and xtype in (N'FN' ...
- SqlServer 获取汉字的拼音首字母
一.该函数传入字符串,返回数据为:如果为汉字字符,返回该字符的首字母,如果为非汉字字符,则返回本身.二.用到的知识点:汉字对应的UNICODE值,汉字的排序规则.三.数据库函数: CREATE FUN ...
- C# 获取汉字的拼音首字母
/// <summary> /// 在指定的字符串列表CnStr中检索符合拼音索引字符串 /// </summary> /// <param name="CnS ...
- C#获取包括一二级汉字的拼音 首字母
C#获取包括一二级汉字的拼音 首字母 声母 汉字拼音转换 using System; using System.Collections.Generic; using System.Linq; usin ...
- SqlServer 汉字转换拼音首字母函数
CREATE function [dbo].[Func_GetPY](@str nvarchar(4000))returns nvarchar(4000)asbegin set @str=RTRIM( ...
随机推荐
- Asp.Net Core--基于角色的授权
翻译如下: 当创建身份时,它可以属于一个或多个角色,例如Tracy可以属于管理员和用户角色,而Scott可以仅属于用户角色. 如何创建和管理这些角色取决于授权过程的后备存储. 角色通过ClaimsPr ...
- 02第一个OC程序
一.打开XCode4.6.3,新建项目 二.选择Application下的命名行项目 三.输入项目名称,选择Foundation框架创建项目,点击Next 四.二话不说.点击Run.启动我们创建的项目 ...
- sql 创建表、删除表 增加字段 删除字段操作
下面是Sql Server 和 Access 操作数据库结构的常用Sql,希望对你有所帮助. 新建表:create table [表名]([自动编号字段] int IDENTITY (1,1) PRI ...
- nginx error_log 错误日志配置说明
nginx的error_log类型如下(从左到右:debug最详细 crit最少): [ debug | info | notice | warn | error | crit ] 例如:error_ ...
- espcms内容页上下篇按后台手动排序号
模板文件: {%get name=plist class="did":$read.did,pid:$read.pid%} <li class="fl"&g ...
- JQuery 菜鸟笔记(一)
什么是JQuery JQuery是一个优秀的javascript类库,jQuery以其简洁.快速等优点征服了众多javascript开发者.jQuery使用户能更方便地处理DOM.events.实现动 ...
- 动态页面 servlet
1.常见软件架构. C/S: 客户端 服务器 安全性较好,但是升级需要升级两端 B/S: 浏览器 服务器 安全性较差, 但是升级时 只需要升级服务器端(我们今后就是开发这个架构的) 2.资源分 ...
- iOS On-Demand Resources简单理解
ios9引入了一个新功能,On-Demand Resources,它是app thinning 的一部分.这个机能简单的说,就是在下载app的时候,app中包含的不重要资源不下载,等到需要时,在由系统 ...
- 错误:The method replace(int, Fragment) in the type FragmentTransaction is not applicable for the arguments (int, MyFragment)
Fragment newfragment =new MyFragment();fragmentTransaction.replace(R.layout.activity_main,newfragmen ...
- java学习第三天 数组
java中数组一样存在多维,二维数组,三维数组..... 二维数组的定义 格式: 数据类型 [][] 数组名 = new 数据类型 [][]; 动态初始化 数据类型[][] 数组名 = new 数 ...