sql存儲過程獲取漢字拼音頭字母函數(shù)
更新時間:2011年10月25日 15:33:29 作者:
sql存儲過程獲取漢字拼音頭字母函數(shù),需要的朋友可以參考下。
復(fù)制代碼 代碼如下:
--函數(shù)
CREATE function fn_GetPy(@str nvarchar(4000))
returns nvarchar(4000)
--WITH ENCRYPTION
as
begin
declare @intLenint
declare @strRetnvarchar(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) >= '發(fā)' 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
go
--調(diào)用
select dbo.fn_getpy('張三')
--返回:zs
答?。?2:
取漢字拼音首字母的存儲過程
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(@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 @PY
end
您可能感興趣的文章:
- 獲取SqlServer存儲過程定義的三種方法
- 解析:php調(diào)用MsSQL存儲過程使用內(nèi)置RETVAL獲取過程中的return值
- PHP調(diào)用MsSQL Server 2012存儲過程獲取多結(jié)果集(包含output參數(shù))的詳解
- mysql存儲過程 在動態(tài)SQL內(nèi)獲取返回值的方法詳解
- SqlServer獲取存儲過程返回值的實例
- PostgreSQL中調(diào)用存儲過程并返回數(shù)據(jù)集實例
- delphi mysql adbquery數(shù)據(jù)提供程序或其他服務(wù)返回 E_FAIL 狀態(tài)
- sql添加數(shù)據(jù)后返回受影響行數(shù)據(jù)
- Mysql中返回一個數(shù)據(jù)庫的所有表名,列名數(shù)據(jù)類型備注
- sql獲取存儲過程返回數(shù)據(jù)過程解析
相關(guān)文章
分享一下SQL Server執(zhí)行動態(tài)SQL的正確方式
這篇文章主要介紹了SQL Server執(zhí)行動態(tài)SQL正確方式,需要的朋友可以參考下2017-06-06
安裝sqlserver2000時出現(xiàn)wowexec.exe無反應(yīng)的解決方法
wowexec.exe是操作系統(tǒng)相關(guān)程序,用于支持16位進(jìn)程,而wowexec 或者 wowexec.exe則是當(dāng)硬盤上的文件碎片過多時,系統(tǒng)自動進(jìn)行碎片整理2013-04-04
SQL SERVER中強(qiáng)制類型轉(zhuǎn)換cast和convert的區(qū)別詳解
這篇文章主要介紹了SQL SERVER中強(qiáng)制類型轉(zhuǎn)換cast和convert的區(qū)別詳解的相關(guān)資料,需要的朋友可以參考下2016-11-11
SQL Server數(shù)據(jù)庫設(shè)置自動備份策略的完整步驟
這篇文章主要給大家介紹了關(guān)于SQL Server數(shù)據(jù)庫設(shè)置自動備份策略的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用sql server具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09
Sqlserver2000 數(shù)據(jù)庫備份實例代碼
每個星期天凌晨1點做一次完全備份,為保險起見,備份到兩個同樣的完全備份文件test_full_A.bak和test_full_B.bak2010-07-07
關(guān)于數(shù)據(jù)庫優(yōu)化問題收集匯總
筆者在工作實踐中發(fā)現(xiàn),不良的SQL往往來自于不恰當(dāng)?shù)乃饕O(shè)計、不充份的連接條件和不可優(yōu)化的where子句。以下就對數(shù)據(jù)庫優(yōu)化問題進(jìn)行了介紹,需要的朋友可以參考下2013-07-07
在安裝了Sql2000的基礎(chǔ)上安裝Sql2005的詳細(xì)過程 圖文
在安裝了Sql2000的基礎(chǔ)上安裝Sql2005的詳細(xì)過程 圖文方法,需要的朋友可以參考下。2011-03-03

