当前位置:  数据库>sqlserver

sqlserver 快速生成汉字的首拼字母的函数(经典)

    来源: 互联网  发布时间:2014-10-07

    本文导语:  代码如下: 代码如下: USE [tempdb] GO /****** Object: UserDefinedFunction [dbo].[fun_getPY] Script Date: 05/23/2012 18:03:45 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /* 获取汉字的首拼音 如果是非汉字字符 */ ALTER function [dbo].[fun_getPY] ( @str nvarchar(4...

代码如下:
代码如下:

USE [tempdb]
GO
/****** Object: UserDefinedFunction [dbo].[fun_getPY] Script Date: 05/23/2012 18:03:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
获取汉字的首拼音
如果是非汉字字符
*/
ALTER function [dbo].[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(@str,1)
--如果非汉字字符,返回原字符
set @PY=@PY+(case when unicode(@word) between 19968 and 19968+20901
then (
select top 1 PY
from
(
select 'A' as PY,N'驁' as word
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'咗'
) T
where word>=@word collate Chinese_PRC_CS_AS_KS_WS
order by PY ASC
)
else @word
end)
set @str=right(@str,len(@str)-1)
end
return upper(@PY)
end

调用如下:
代码如下:

select dbo.[fun_getPY]('中国人') 首拼

结果:
ZGR

    
 
 

您可能感兴趣的文章:

  • sqlserver中求字符串中汉字的个数的sql语句
  • sqlServer 获取汉字字串的拼音声母
  • sqlserver 根据汉字获取拼音的函数
  • 浅谈SQLServer的ISNULL函数与Mysql的IFNULL函数用法详解
  • 一个函数解决SQLServer中bigint 转 int带符号时报错问题
  • SQLServer EVENTDATA()函数来获取DDL 触发器信息
  • sqlserver substring函数使用方法小结
  • sqlserver中的自定义函数的方法小结
  • SqlServer2012中First_Value函数简单分析
  • SqlServer2012中LEAD函数简单分析
  • sqlserver replace函数 批量替换数据库中指定字段内指定字符串参考方法
  • SQLSERVER ISNULL 函数与判断值是否为空的sql语句
  • SQLServer CONVERT 函数测试结果
  • SQLServer中的切割字符串SplitString函数
  • SQLserver中用convert函数转换日期格式的方法
  • Sqlserver 常用日期时间函数
  • sqlserver Case函数应用介绍
  • sqlserver 各种判断是否存在(表名、函数、存储过程等)
  • sqlserver CONVERT()函数用法小结
  • 存储过程解密(破解函数,过程,触发器,视图.仅限于SQLSERVER2000)
  • sqlserver 函数、存储过程、游标与事务模板
  • 谈谈sqlserver自定义函数与存储过程的区别
  • SqlServer中的日期与时间函数
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 连接sqlserver的url是jdbc:microsoft:sqlserver://192.168.0.100:1433,他连那一个数据库呢?
  • (100分)用Microsoft jdbc Driver for sqlserver2000(type4)访问sqlserver2k的问题,help!
  • 通过SQLSERVER重启SQLSERVER服务和计算机的方法
  • 怎样用文JDBC for sqlserver访问SQLSERVER 数据库请大侠给出一个完整的程序代码
  • (100分)jdbc连接sqlserver 200出错.[SQLServer 2000 Driver for JDBC]Error establishing socket.
  • 如何连接sqlserver2000数据库
  • 深入JDBC sqlserver连接写法的详解
  • how to 连接到sqlserver2000?
  • 请问如何直接sqlserver?
  • SQLServer JDBC Driver
  • 在sqlserver2000时中文问题。
  • 设置密码保护的SqlServer数据库备份文件与恢复文件的方法
  • 如何使用JSP 连接SQLSERVER数据库,请不吝赐教!(在线等,急救!)
  • 简单实现SQLServer转MYSQL的方法
  • 求助!SQLServer2000 JDBC Driver 不能加载?
  • Resin+Jsp+Sqlserver2000的问题!在线等候!
  • applet用jdbc链接SQLServer 2000的问题
  • 请问连接SQLServer 的驱动器是什么呢?
  • jdbc:microsoft:sqlserver://localhost:1433;DatabaseNameOPTIONAL=webmail???
  • 如何用SQLServer2k-JDBC连接数据库?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3