/*--獲得漢字字符串的首字母--*/
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
--創(chuàng)建取拼音函數(shù)
create function fgetpy(@str varchar(500)='')
returns varchar(500)
as
begin--函數(shù)實(shí)現(xiàn)開始
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循環(huán)開始
select @[email protected]+1,@n=63,@chn=substring(@str,@ii,1)
if @chn>'z'--if開始
--此處只有一個(gè) select 語(yǔ)句,原理以“字符串排序以及ascii碼表”:
select @n = @n +1,@c = --★★★select★★★
case chn --case開始
when @chn then char(@n) --case分支
else @c --case分支
end --case結(jié)束
from( --★★★from★★★
select top 27 * from (
select chn = '吖'
union all select '八'
union all select '嚓'
union all select '咑'
union all select '妸'
union all select '發(fā)'
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對(duì)應(yīng)的else
set @[email protected]
--if結(jié)束
set @[email protected][email protected]
end--while循環(huán)結(jié)束
return(@return)
end--函數(shù)實(shí)現(xiàn)結(jié)束
go
--測(cè)試
select dbo.fgetpy('魏保光') as 姓名拼音,dbo.fgetpy('ab中c國(guó)人') as 中國(guó)人
select dbo.fgetpy('劉子良') as 姓名拼音,dbo.fgetpy('ab中c國(guó)人') as 中國(guó)人
select dbo.fgetpy('吳過(guò)') as 姓名拼音,dbo.fgetpy('ab中c國(guó)人') as 中國(guó)人
select dbo.fgetpy('東北') as 姓名拼音,dbo.fgetpy('ab中c國(guó)人') as 中國(guó)人
select dbo.fgetpy('王大海八丫') as 王大海八丫,dbo.fgetpy('服務(wù)地圖') as 服務(wù)地圖
--刪除拼音函數(shù)
drop function fgetpy
新聞熱點(diǎn)
疑難解答
圖片精選