SQL生成拼音首码

--生成拼音首码
CREATE function [dbo].[fn_GetPy](@str nvarchar(1000))
returns nvarchar(1000)
--WITH ENCRYPTION
as
begin
 declare @intLen int
 declare @strRet nvarchar(1000)
 declare @temp nvarchar(100)
 set @intLen = len(@str)
 set @strRet = ‘‘
 while @intLen > 0
 begin
  set @temp = ‘‘
  select @temp = case
  when substring(@str,@intLen,1) >= ‘帀‘ then ‘Z‘
  when substring(@str,@intLen,1) >= ‘丫‘ then ‘Y‘
  when substring(@str,@intLen,1) >= ‘夕‘ then ‘X‘
  when substring(@str,@intLen,1) >= ‘屲‘ then ‘W‘
  when substring(@str,@intLen,1) >= ‘他‘ then ‘T‘
  when substring(@str,@intLen,1) >= ‘仨‘ then ‘S‘
  when substring(@str,@intLen,1) >= ‘呥‘ then ‘R‘
  when substring(@str,@intLen,1) >= ‘七‘ then ‘Q‘
  when substring(@str,@intLen,1) >= ‘妑‘ then ‘P‘
  when substring(@str,@intLen,1) >= ‘噢‘ then ‘O‘
  when substring(@str,@intLen,1) >= ‘拏‘ then ‘N‘
  when substring(@str,@intLen,1) >= ‘嘸‘ then ‘M‘
  when substring(@str,@intLen,1) >= ‘垃‘ then ‘L‘
  when substring(@str,@intLen,1) >= ‘咔‘ then ‘K‘
  when substring(@str,@intLen,1) >= ‘丌‘ then ‘J‘
  when substring(@str,@intLen,1) >= ‘铪‘ then ‘H‘
  when substring(@str,@intLen,1) >= ‘旮‘ then ‘G‘
  when substring(@str,@intLen,1) >= ‘发‘ then ‘F‘
  when substring(@str,@intLen,1) >= ‘妸‘ then ‘E‘
  when substring(@str,@intLen,1) >= ‘咑‘ then ‘D‘
  when substring(@str,@intLen,1) >= ‘嚓‘ then ‘C‘
  when substring(@str,@intLen,1) >= ‘八‘ then ‘B‘
  when substring(@str,@intLen,1) >= ‘吖‘ then ‘A‘
  else rtrim(ltrim(substring(@str,@intLen,1)))
  end
  --对于汉字特殊字符,不生成拼音码
  if (ascii(@temp)>127) set @temp = ‘‘
  --对于英文中小括号,不生成拼音码
  if @temp = ‘(‘ or @temp = ‘)‘ set @temp = ‘‘
  select @strRet = @temp + @strRet
  set @intLen = @intLen - 1
 end
 return upper(@strRet)
end

时间: 2024-08-25 21:22:35

SQL生成拼音首码的相关文章

SQL Server 字段提取拼音首字母

目前工作中遇到一个情况,需要将SQL Server中的一个字段提取拼音的首字母,字段由汉字.英文.数字以及“-”构成,百度了一堆,找到如下方法,记录一下,以备后用! 首先建立一个函数 --生成拼音首码 CREATE function fn_GetPy(@str nvarchar(4000)) returns nvarchar(4000) --WITH ENCRYPTION as begin declare @intLen int declare @strRet nvarchar(4000) de

JS获取中文拼音首字母,并通过拼音首字母高速查找页面内的中文内容

实现效果: 图一: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGVzdGNzX2Ru/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" /> 图二: 此例中输入的中文字符串"万万保重",有三个字是多音字.所以alert对话框中显示的是多种读音的组合. 怎样实现? 怎样实现通过拼音首字母高速查找页面内的中文内容呢? 过程原

JS获取中文拼音首字母,并通过拼音首字母快速查找页面内的中文内容

实现效果: 图一: 图二: 此例中输入的中文字符串"万万保重",有三个字是多音字,所以alert对话框中显示的是多种读音的组合: 如何实现? 如何实现通过拼音首字母快速查找页面内的中文内容呢? 过程原理是这样的:例如要对一些人名进行快速查找,当页面加载完成后,对所有人名建立一个索引,生成拼音首字母与姓名的对应关系:然后监听键盘事件,当用户按下键盘时,根据键值得到按下的是哪个字母,然后遍历索引中是否存在相同的拼音首字母: 这里还实现了根据字母组合来查找的功能,原理是这样的:当用户按键时,

淘宝数据库OceanBase SQL编译器部分 源码阅读--生成逻辑计划

body, td { font-family: tahoma; font-size: 10pt; } 淘宝数据库OceanBase SQL编译器部分 源码阅读--生成逻辑计划 SQL编译解析三部曲分为:构建语法树,生成逻辑计划,指定物理执行计划.第一步骤,在我的上一篇博客淘宝数据库OceanBase SQL编译器部分 源码阅读--解析SQL语法树里做了介绍,这篇博客主要研究第二步,生成逻辑计划. 一. 什么是逻辑计划?我们已经知道,语法树就是一个树状的结构组织,每个节点代表一种类型的语法含义.如

.net 生成拼音码与五笔码

首先加入配置文件: <?xml version="1.0" encoding="utf-8" ?> <CodeConfig> <SpellCode> <A>阿啊锕嗄厑哎哀唉埃挨溾锿鎄啀捱皑凒溰嘊敳皚癌毐昹嗳矮蔼躷噯藹譪霭靄艾伌爱砹硋隘嗌塧嫒愛碍暧瑷僾壒嬡懓薆曖璦鴱皧瞹馤鑀鱫安侒峖桉氨庵谙萻腤鹌蓭誝鞌鞍盦馣鮟盫韽啽雸垵俺唵埯铵隌揞罯銨犴岸按荌案胺豻堓婩暗貋儑錌黯肮岇昂昻枊盎醠凹坳垇柪軪爊敖厫隞嗷嗸嶅廒滶獒獓遨熬璈蔜翱聱螯

生成与中文字符串相对映的拼音首字母串

/** * 作者:王延领 * 功能:生成与中文字符串相对映的拼音首字母串 * 版本: V1.0 alpha */ // 汉字拼音首字母列表 本列表包含了20902个汉字 //函数使用,本表收录的字符的Unicode编码范围为19968至40869 var strChineseFirstPY = "YDYQSXMWZSSXJBYMGCCZQPSSQBYCDSCDQLDYLYBSSJGYZZJJFKCCLZDHWDWZJLJPFYYNWJJTMYHZWZHFLZPPQHGSCYYYNJQYXXGJH

存储过程 生成拼音码与五笔码

Create Function sf_ShortCode ( @Input nvarchar(4000), --输入的文字 @Kind Int=0 --0:拼音;1:五笔 ) Returns nvarchar(10) As Begin declare @word nchar(1),@Retu nvarchar(10) declare @5A nvarchar(1000),@5B nvarchar(1000),@5C nvarchar(1000), @5D nvarchar(1000),@5E n

淘宝数据库OceanBase SQL编译器部分 源码阅读--生成物理查询计划

SQL编译解析三部曲分为:构建语法树,制定逻辑计划,生成物理执行计划.前两个步骤请参见我的博客<<淘宝数据库OceanBase SQL编译器部分 源码阅读--解析SQL语法树>>和<<淘宝数据库OceanBase SQL编译器部分 源码阅读--生成逻辑计划>>.这篇博客主要研究第三步,生成物理查询计划. 一. 什么是物理查询计划 与之前的阅读方法一致,这篇博客的两个主要问题是what 和how.那么什么是物理查询计划?物理查询计划能够直接执行并返回数据结果数

MSSQL 生成拼音码

MSSQL 生成拼音码 /*============================================================================== 名称:fn_Get_Pin 功能:生成拼音码 创建:XXX 时间:2009年2月23日 ==============================================================================*/ CREATE function [dbo].[fn_Get_Pi