sqlserver 快速生成漢字的首拼字母的函數(shù)(經(jīng)典)
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'錯(cuò)'
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
調(diào)用如下:
select dbo.[fun_getPY]('中國(guó)人') 首拼
結(jié)果:
ZGR
相關(guān)文章
SQL Server修改標(biāo)識(shí)列方法 如自增列的批量化修改
最近在運(yùn)行系統(tǒng)時(shí)需要對(duì)所有服務(wù)器上數(shù)據(jù)結(jié)構(gòu)進(jìn)行批量修改某個(gè)字段的自增屬性改成非自增2012-05-05
SQL Server觸發(fā)器及觸發(fā)器中的事務(wù)學(xué)習(xí)
首先, 說(shuō)下我寫(xiě)篇文章的目的,我希望能把我對(duì)觸發(fā)器的理解,分享出來(lái)與你一起學(xué)習(xí)2011-05-05
SQL中WHERE變量IS NULL條件導(dǎo)致全表掃描問(wèn)題的解決方法
今天在評(píng)審接手的項(xiàng)目中的存儲(chǔ)過(guò)程時(shí),發(fā)現(xiàn)存在大量的在條件里判斷變量是否NULL的寫(xiě)法2013-09-09
SQL Server中數(shù)據(jù)行批量插入腳本的存儲(chǔ)實(shí)現(xiàn)
這篇文章主要介紹了SQL Server中數(shù)據(jù)行批量插入腳本的存儲(chǔ)實(shí)現(xiàn) 的相關(guān)資料,需要的朋友可以參考下2015-12-12
sqlserver中求字符串中漢字的個(gè)數(shù)的sql語(yǔ)句
sqlserver中求字符串中漢字的個(gè)數(shù)的sql語(yǔ)句,需要的朋友可以參考下2012-05-05
sqlserver 樹(shù)形結(jié)構(gòu)查詢單表實(shí)例代碼
這篇文章主要介紹了 sqlserver 樹(shù)形結(jié)構(gòu)查詢單表的實(shí)例代碼,需要的朋友可以參考下2017-08-08
Superset實(shí)現(xiàn)動(dòng)態(tài)SQL查詢功能
這篇文章給大家介紹使用自定義參數(shù)方式實(shí)現(xiàn) superset 實(shí)現(xiàn)SQL動(dòng)態(tài)查詢功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-08-08
SQL?Server數(shù)據(jù)庫(kù)常用語(yǔ)句總結(jié)大全
SQL Server數(shù)據(jù)庫(kù)常用的SQL語(yǔ)句有很多,下面這篇文章主要給大家總結(jié)介紹了關(guān)于SQL?Server數(shù)據(jù)庫(kù)常用語(yǔ)句的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-08-08
在數(shù)據(jù)庫(kù)‘master’中拒絕CREATE DATABASE權(quán)限問(wèn)題的解決方法
今天使用Linq To SQL,要求判斷數(shù)據(jù)庫(kù)是否存在,不存在是自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)。2011-10-10
win2003安裝sqlserver 2000提示無(wú)法驗(yàn)證產(chǎn)品密鑰的解決方法
由于腳本之家的安全設(shè)置,刪除了很多安全隱患的東西,也導(dǎo)致了一些軟件安裝出現(xiàn)錯(cuò)誤,所以建議大家在安裝好軟件再安全設(shè)置。今天就出現(xiàn)了安全sql2000時(shí)提示提示無(wú)法驗(yàn)證產(chǎn)品密鑰,下面的具體的解決方法。2011-07-07

