SQL Server 字段提取拼音首字母

SQL Server编写函数获取汉字的拼音码(简拼) 拼音码一般分为全拼、简拼、双拼三大类。在数据库系统查询中,使用简拼查询能打打提高输入的速度,提高查询效率。比如,在药店系统中,查询药品阿莫西林时,只需要输入阿莫西林药品对应的简拼码AMXL,点击查询即可查到相应的结果,问题是,数据库系统的表中事先需要通过相应的Sql等语言获取药品名称对应的简码。 本文采用SQL语句,自定义函数fun_getPY(),以方便快速获取拼音码。例如前面提到的阿莫西里,只需调用函数:dbo.fun_getpy('阿莫西林') 。 Create function fun_get 阅读详情

目前工作中遇到一个情况,需要将SQL Server中的一个字段提取拼音的首字母,字段由汉字、英文、数字以及“-”构成,百度了一堆,找到如下方法,记录一下,以备后用!

首先建立一个函数

--生成拼音首码  
  CREATE  function  fn_GetPy(@str  nvarchar(4000))  
  returns  nvarchar(4000)  
  --WITH  ENCRYPTION  
  as  
  begin  
  declare  @intLen int  
  declare  @strRet nvarchar(4000)  
  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  lower(@strRet)  
  end 

执行语句

SELECT    需转换中文字段, dbo.fn_GetPy(中文字段) AS 列别名
FROM        表名称
SQL Server 汉字拼音简码获取 SQL Server 拼音简码获取函数。 立即下载

相关推荐

IEEE Transactions模板中参考文献作者缩写、期刊名缩写

本文章记录如何在IEEE Transactions的模板中,解决参考文献的作者缩写、期刊名字缩写的问题。

weixin_43981621的博客 1万+

SQLSERVER中汉字提取首字母的拼音函数的实现

--创建一个汉字提取首字母的函数--还存在一点小小的问题(符号?)create function hs(@a varchar(1000)='')returns varchar(1000)asbegindeclare @b varchar(40),@i int,@c varchar(10)declare @d varchar(10),@e varchar(10),@pinyin nvarchar(2...

weixin_34214500的博客 182

ABB RobotStudio 和 S7-PLCSIM Advanced V5.0 搭建虚拟通信环境,实现 PLC 对机器人布尔量、数字量和模拟量的控制。

本教程详细介绍了如何利用ABB RobotStudio和S7-PLCSIM Advanced V5.0搭建虚拟通信环境,实现PLC对机器人的布尔量、数字量和模拟量控制。主要内容包括:在TIA Portal V20中配置PLC项目并编写通信程序;通过S7-PLCSIM Advanced创建虚拟PLC运行环境;在RobotStudio中设置机器人PROFINET通信;以及建立虚拟网络连接并进行功能测试。该方案适用于工业自动化虚拟调试,可显著降低现场调试风险。操作需注意软件版本兼容性、网络配置及信号映射准确性,最

CHUXUEZHE8210的博客 2515

sqlserver 根据汉字获取拼音首字母 函数

步骤: 1,在函数下创建一个函数名为fun_getPY的函数 2,编写fun_getPY函数,复制脚本代码 3,调用函数,查看结果 实现 1,如图 2,脚本代码 create function [dbo].[fun_getPY](@str nvarchar(4000)) returns nvarchar(4000) as begin declare @word nvarchar(1),@PY nvarchar(4000) set @PY='' set @str = ltrim(rtrim(@

qq_36636312的博客 1173

快速上手:网页版EggNOG功能注释全流程解析

本文详细解析了网页版EggNOG在蛋白序列功能注释中的全流程操作,从初识工具到实战技巧,涵盖FASTA格式处理、参数设置、结果解读及常见问题解决方案。特别适合生物信息学初学者快速掌握这一高效注释工具,提升非模式生物基因组研究的注释效率。

weixin_29310631的博客 189

硬件测试入门--环路响应(Bode)测试

环路分析的一个重要作用就是分析开关电源的稳定性。扫频测试原理主要是给开关电源电路注入一个频率变化的正弦信号,测量开关电源在频域上的特性,通过分析穿越频率、增益裕度和相位裕度来判断环路是否稳定,可以为电子工程师设计稳定的控制电路提供直观的数据。开关电源的稳定性关系到整个应用系统的可靠性,利用伯德图可以看出在不同频率下系统增益的大小和相位。通过伯德图来对开关电源的环路稳定性进行判断和分析已经成为评估开关电源可靠性必不可少的方法。

songninging的博客 1万+

助记码的标量值函数(中文的拼音首字母)

set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER function [dbo].[GetPY](@str varchar(500)) returns varchar(500) as begin declare @cyc int,@length int,@str1 varchar(100),@charcate varbina

矫正的快乐人生 1615

综合能源系统多时间尺度优化调度!诸多创新点让你抓住审稿人的心!

主要介绍综合能源系统的设备组成结构,并针对屋顶光伏系统、冷-热-电联供系统中的燃气轮机、燃气锅炉、光伏溴化锂制冷机、卡琳娜余热发电、中央空调系统,以及外网交互系统的配电网与天然气管网交互关系进行数学建模。1) 源-荷-储协同调度:研究屋顶光伏、燃气轮机、燃气锅炉等源侧设备,中央空调、电-热-冷负荷、可平移电负荷、可削减温控负荷等负荷侧资源,以及储能系统、电动汽车等储能侧设备的协同调度,以提高风光消纳能力,满足社会能源需求。通过电转热、电转冷、电转气等多能耦合方式,可进一步促进可再生能源的应用与发展。

weixin_48747334的博客 1488

SQL Server 中取出字符串的首个字符。

set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoCreate     function   [dbo].[fun_getPY]         (               @str   nvarchar(4000)         )       returns   nvarchar(4000)       as

lengjing126的专栏 1675

利用NURBS曲线进行点云曲面拟合算法

点云拟合曲面算法是将点云数据拟合成一个二次或高次曲面模型的算法。这种算法主要用于三维模型重建、计算机视觉、机器人感知、医学图像处理等领域。最小二乘法(Least Squares Method):通过最小化点到曲面距离的平方和来拟合曲面模型。三角剖分算法(Triangulation-Based Method):将点云构建成三角网格,再拟合成曲面模型。隐式曲面算法(Implicit Surface Method):通过定义一个隐式函数来表示曲面,然后用点云数据来估计隐式函数的系数。

weixin_44770969的博客 1万+

停车位检测:基于YOLOv5与UI界面的实现

YOLOv5是YOLO(You Only Look Once)系列中的最新版本,它能够在单次前向传播中同时完成多个目标的定位与分类,因此被广泛应用于实时目标检测任务。与之前的版本相比,YOLOv5在精度和速度上得到了很大的优化,适合嵌入到实际的自动驾驶和智能交通系统中。YOLOv5使用了卷积神经网络(CNN)进行特征提取,并通过回归方法预测边界框、类别及置信度。高效的推理速度:YOLOv5采用了优化的模型结构,能够在保证精度的同时提供较快的推理速度。较高的精度。

YOLO 694

sql获取汉字的拼音首字母的函数

ql获取汉字的拼音首字母 if exists (select * from sysobjects where id = object_id(N'[fn_ChineseToSpell]') and xtype in (N'FN', N'IF', N'TF')) www.2cto.com drop function [fn_ChineseToSpell] GO /*创建...

weixin_34194702的博客 539

【保姆级教程】基于UNet++&MobileNetv2的语义分割模型从训练到RK3588部署:让边缘AI落地效率提升300%

通过SMP库一键构建encoder_name="mobilenet_v2", # 选择MobileNetv2作为骨干encoder_weights="imagenet", # 加载预训练权重加速收敛in_channels=3, # 输入图像通道数(RGB)classes=29, # Cityscapes数据集类别数activation=None # 输出无激活,便于后续损失计算本教程从“模型设计-训练-转换-边缘部署”全链路拆解了。

FJN110的博客 210

SQL将用户表中已存在的数据所有姓名(汉字)转换为拼音首字母

实现方法: --函数 Create function [dbo].[fn_GetPy](@str nvarchar(4000)) returns nvarchar(4000) --用于加密 --WITH ENCRYPTION as begin declare @intLen int declare @strRet nvarchar(4000) decl...

weixin_30814223的博客 492

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

sql 助记码

set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoALTER FUNCTION [dbo].[uf_GetSpellCode](                        @string nvarchar(2000)                    )        returns nvarchar(1000)    AS BEGIN       

skyppt的专栏 716

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

sql server 中文字段值转为拼音首字母

1、下面这个方法是中文转为拼音首字母方法 create function dbo.fun_getPY(@str nvarchar(255))  returns nvarchar(50)  as  begin  declare @word nchar(1),@PY nvarchar(50)  set @PY=''  while len(@str)>0  begin  set @wo

l7022995的专栏 3165

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

[sql server] 取汉字 拼音 首字母

--取汉字 拼音 首字母 create function fun_getPY(@str nvarchar(4000)) returns nvarchar(4000) as begin declare @word nchar(1),@PY nvarchar(4000) set @PY='' while len(@str)>0 begin set @word=left

永生天地 3288

SQL server中表数据自动生成拼音码

总结将SQL server 中表数据自动生成拼音码的实现步骤: 1、创建一个方法,传入一个参数,这个参数是你要将什么样的数据自动生成拼音码。 下面代码可以直接复制到你们的编辑器中运行。运行后就可以调用 fn_GetPy(str)方法。 CREATE function fn_GetPy(@str nvarchar(4000)) returns nvarchar(4000) --WITH ENCRYPTION as begin declare @.

韩利巍 5740

Microsoft SQL Server 编写汉字转拼音函数

在搜索应用中,我们一般会提供一个搜索框,输入关健字,点击查询按钮以获取结果数据。大部分情况我们会提供模糊查询的形式以在一个或多个字段进行搜索以获取结果。这样可以简化用户的操作,扩大搜索范围,为提高精度而提供基础范围数据。因此按汉字拼音搜索,即可以进一步简化输入,又可以进一步扩大搜索范围。

初九之潜龙勿用 5506

SQL Server根据汉字笔划和取得拼音首字母进行排序

         做房产网站,已经有了小区模板表,将小区的名称一律输入数据表中供登记用户进行选择。发现一个排序的问题:小区名称加载至下拉列表中时默认只是按照主键进行了升序排序,无任何规律,名称找起来非常麻烦。如何按小区名称第一个汉字的首字母进行排序?可原小区模版中并无拼音首字母字段。改数据表是不可行的,有几个系统都在使用此表,改动量巨大。于是决定从排序规则入手,参考有关资料进行解决。     

~~~徐长伟~~~ 6299

经典SQL Server用户自定义函数:首字拼音查询

经典SQL Server用户自定义函数:首字拼音查询 /*--获得汉字字符串的首字母   根据大力的贴子改成.将大力的两个函数合并成了一个函数.   可以应用于助记码的查询   作者:邹建--*/if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[f

no_mIss的专栏 2628

根据汉字首字母排序的方法

mysql根据汉字首字母排序的方法 实现mysql中根据汉字首字母排序的sql语句: 代码示例: select areaname from area order by convert(areaname using gbk) collate gbk_chinese_ci asc 说明: areaname为列名 area为表名 mysql 中文字段排序( 按拼音首字母排序) 的查...

li_jiazhi的博客 3399

sql 汉字按照首字母排序

1、mysql    1)按照汉字的拼音排序    如果存储汉字的字段编码使用的是GBK字符集,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了,但考虑到人名等都是常用汉字,因此只是针对一级汉字能正确排序也够用了),直接在查询语句后面添加ORDER BY name ASC,查询结果将按照姓氏的升序排序;如果存储姓名的字段采用的是utf8字符集,需...

雷鸣隐隐的博客 1万+

数据库SQL 某字段按首字母排序

1、mysql    1)按照汉字的拼音排序 &nbsp...

qq5621的博客 6789

数据查询支持中文拼音首字母模糊检索

需求:在做软件的过程中,发现不少客户在做数据检索时,打汉字怕麻烦,也影响工作效率,要求在查询时,支持查询汉字的字母开头查询。     做到支持数据库拼音码查询,主要分一下几步实现:     1.在数据库中建立一个sys_spell_dict表,把常用的汉字与拼音字母做为对照信息存储到数据库中。下面以SQL server 2005数据库的SQL语言格式编写实现。     .先创建sys

深南大道 1万+
上一篇: JavaScript实现模板生成大量数据的方法(附代码)
下一篇: SQLServer汉字(转拼音首字母,转全拼音函数)
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值