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

