文档章节

sqlserver 获得汉字首字母

星辰~
 星辰~
发布于 2013/04/24 09:47
字数 333
阅读 137
收藏 8
USE [database]
GO
/****** Object:  UserDefinedFunction [dbo].[getPinYin]    Script Date: 04/24/2013 09:47:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION  [dbo].[getPinYin] (@str varchar(500) = '')  
RETURNS varchar(500)  AS  


/*-------------------用于获取中文名称的首字母---------------------------------*/
BEGIN 
Declare @strlen int,
  @return varchar(500),
  @ii int,
  @c char(1),
  @chn nchar(1)
 --//初始化变量 
Declare @pytable table(
chn char(2) COLLATE Chinese_PRC_CS_AS NOT NULL,
py char(1) COLLATE Chinese_PRC_CS_AS NULL,
PRIMARY KEY (chn) 
  )
insert into @pytable values('吖', 'A')
insert into @pytable values('八', 'B')
insert into @pytable values('嚓', 'C')
insert into @pytable values('咑', 'D')
insert into @pytable values('妸', 'E')
insert into @pytable values('发', 'F')
insert into @pytable values('旮', 'G')
insert into @pytable values('铪', 'H')
--insert into @pytable values('丌', 'I')
insert into @pytable values('丌', 'J')
insert into @pytable values('咔', 'K')
insert into @pytable values('垃', 'L')
insert into @pytable values('嘸', 'M')
insert into @pytable values('拏', 'N')
insert into @pytable values('噢', 'O')
insert into @pytable values('妑', 'P')
insert into @pytable values('七', 'Q')
insert into @pytable values('呥', 'R')
insert into @pytable values('仨', 'S')
insert into @pytable values('他', 'T')
--insert into @pytable values('屲', 'U')
--insert into @pytable values('屲', 'V')
insert into @pytable values('屲', 'W')
insert into @pytable values('夕', 'X')
insert into @pytable values('丫', 'Y')
insert into @pytable values('帀', 'Z')


 select @strlen = len(@str), @return = '', @ii = 0 
 --//循环整个字符串,用拼音的首字母替换汉字 
 while @ii < @strlen 
 begin
  select @ii = @ii + 1, @chn = substring(@str , @ii, 1)
     if @chn > 'z' --//检索输入的字符串中有中文字符
  SELECT @c = max(py)
  FROM @pytable
  where chn <= @chn
    else
         set @c=@chn
 
  set @return=@return+@c 
 end
 return @return
END


查询方式:select dbo.getPinYin('博客')





© 著作权归作者所有

星辰~
粉丝 13
博文 43
码字总数 3879
作品 0
烟台
项目经理
私信 提问
SQL注入漏洞全接触--进阶篇

  第一节、SQL注入的一般步骤   首先,判断环境,寻找注入点,判断数据库类型,这在入门篇已经讲过了。   其次,根据注入参数类型,在脑海中重构SQL语句的原貌,按参数类型主要分为下面...

望志东
2012/04/24
156
0
SQL注入天书—ASP注入漏洞

引言 随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没...

范堡
2009/05/05
699
3
FreeBSD下执行SQL Server2005存储过程解决方案

FreeBSD下执行SQL Server2005存储过程解决方案(Warning: mssql_execute(): ...) FreeBSD下使用SQL Server2005(2008)需要使用FreeTDS。 安装FreeTSD后,使用PHP语言进行测试。在使用mssql_e...

雷xiao雨
2014/03/01
52
0
SQL注入

作者:未知 请与本人联系 引 言 随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程...

晨曦之光
2012/03/09
233
0
mysql 的查询优化终极解决方案 -- 绝对杀手级,可以解决所有查询性能问题

终极必杀解决方案: 此方案也是大多mysql应用公司做复杂查询的唯一可行解决方案. 这个方案是在 每天 增加超过300万的纪录的环境当中,进行复杂的报表制作,分析ROI,得到验证过的: 1:买/D 一个m...

宏哥
2012/07/05
1K
19

没有更多内容

加载失败,请刷新页面

加载更多

Android Binder机制 - interface_cast和asBinder讲解

研究Android底层代码时,尤其是Binder跨进程通信时,经常会发现interface_cast和asBinder,很容易被这两个函数绕晕,下面来讲解一下: interface_cast 下面根据下述ICameraClient例子进行分析...

天王盖地虎626
昨天
5
0
计算机实现原理专题--存储器的实现(二)

计算机实现原理专题--存储器的实现(一)中描述了一种可以记住输入端变化的装置。现需要对其功能进行扩充,我们将上面的开关定义为置位,下面的开关定义为复位,然后需要增加一个保持位,当保...

FAT_mt
昨天
3
0
集合--Collection与迭代

1.1Collection 集合 集合:集合是Java提供的一种容器技术,可以用来存储多个数据 集合与数组的区别: 数组的长度是固定的,集合的长度是可变的 数组中存储的是同类型的元素,存储基本数据类型...

Firefly-
昨天
10
0
聊聊rocketmq的consumeTimeout

序 本文主要研究一下rocketmq的consumeTimeout consumeTimeout rocketmq-client-4.5.2-sources.jar!/org/apache/rocketmq/client/consumer/DefaultMQPushConsumer.java public class Defaul......

go4it
昨天
2
0
JAVA--高级基础开发

Day13[Map集合练习题] 练习一:Map接口的特点 请简述Map 的特点: Map集合中存放的数据都是键值对,并且键不能相同,值可以相同。 Map集合中的Key是根据Set集合来存放的。 Map集合可以使用n...

李文杰-yaya
昨天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部