惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 司徒正美
宝玉的分享
宝玉的分享
美团技术团队
量子位
The Cloudflare Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
IT之家
IT之家
爱范儿
爱范儿
J
Java Code Geeks
博客园 - Franky
Last Week in AI
Last Week in AI
B
Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
InfoQ
GbyAI
GbyAI
Recent Announcements
Recent Announcements
小众软件
小众软件
H
Help Net Security
Microsoft Azure Blog
Microsoft Azure Blog
MyScale Blog
MyScale Blog

博客园 - 李通通

c#窗体png图片 c# 控件透明 资料整理 提升windows forms应用速度的几个简单方法 利用压缩网页来提升网站浏览速度(转载) datalist嵌套datalist的实例 - 李通通 - 博客园 求助。问个关于NBear的简单问题 - 李通通 - 博客园 一些flash播放器 技巧/诀窍:在ASP.NET中重写URL SEO参考:DIV+CSS三行两列经典布局 - 李通通 - 博客园 使用 jQuery 简化 Ajax 开发 未来职业定位 下一代数据访问:使概念级别成为现实 LINQ 项目 .NET 语言集成查询 LINQ asp.net控件开发基础(10) -- 集合属性的使用 asp.net控件开发基础(9) -- 属性类型转换器 asp.net控件开发基础(8) -- 复合控件实现事件 ClientScriptManager类,用于管理客户端脚本引发服务器事件回发
获得汉字字符串的首字母(T-SQL函数)
李通通 · 2007-05-09 · via 博客园 - 李通通

/*--获得汉字字符串的首字母--*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fGetPy]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[fGetPy]
GO

--创建取拼音函数
create function fGetPy(@Str varchar(500)='')
returns varchar(500)
as
begin--函数实现开始

 declare @strlen int,@return varchar(500),@ii int
 declare @n int,@c char(1),@chn nchar(1) 
 select @strlen=len(@str),@return='',@ii=0
 set @ii=0
 
 
 while @ii<@strlen
 begin--while循环开始
  select @ii=@ii+1,@n=63,@chn=substring(@str,@ii,1)
  
  if @chn>'z'--if开始
   --此处只有一个 select 语句,原理以“字符串排序以及ASCII码表”:
   select @n = @n +1,@c =    --★★★select★★★
    case chn --case开始
     when @chn then char(@n) --case分支
     else @c --case分支
     end --case结束
   from(  --★★★from★★★
   select top 27 * from (
   select chn = '吖'
   union all select '八'
   union all select '嚓'
   union all select '咑'
   union all select '妸'
   union all select '发'
   union all select '旮'
   union all select '铪'
   union all select '丌' --because have no 'i'
   union all select '丌'
   union all select '咔'
   union all select '垃'
   union all select '嘸'
   union all select '拏'
   union all select '噢'
   union all select '妑'
   union all select '七'
   union all select '呥'
   union all select '仨'
   union all select '他'
   union all select '屲' --no 'u'
   union all select '屲' --no 'v'
   union all select '屲'
   union all select '夕'
   union all select '丫'
   union all select '帀'
   union all select @chn) as a
   order by chn COLLATE Chinese_PRC_CI_AS
   ) as b  
  
  else --if对应的else 
   set @c=@chn 
  --if结束

  set @return=@return+@c
 end--while循环结束
 

 return(@return)
end--函数实现结束

go
--测试
select dbo.fgetpy('魏保光') as 姓名拼音,dbo.fgetpy('ab中c国人') as 中国人
select dbo.fgetpy('刘子良') as 姓名拼音,dbo.fgetpy('ab中c国人') as 中国人
select dbo.fgetpy('吴过') as 姓名拼音,dbo.fgetpy('ab中c国人') as 中国人
select dbo.fgetpy('东北') as 姓名拼音,dbo.fgetpy('ab中c国人') as 中国人
select dbo.fgetpy('王大海八丫') as 王大海八丫,dbo.fgetpy('服務地圖') as 服務地圖

--删除拼音函数
drop function fgetpy