一、該函式傳入字串,返回資料為:如果為漢字字元,返回該字元的首字母,如果為非漢字字元,則返回本身。
二、用到的知識點:漢字對應的unicode值,漢字的排序規則。
三、資料庫函式:
create四、函式呼叫:function getinitialletter(@chinesestring
nvarchar(4000
)) returns
nvarchar(4000
) as
begin
declare
@singlecharacter
nchar(1
),@returnstring
nvarchar(4000
) set
@returnstring=''
while
len(@chinesestring)>
0begin
--依次取單個字元
set@singlecharacter
=left(@chinesestring,1
) ----漢字字元,返回字元對應首字母,非漢字字元,返回原字元
if(unicode(@singlecharacter) between
19968
and19968
+20901
)set
@returnstring
=@returnstring+(
select
top1 py from
(select'a
'as py,n'驁'
aschinesecharacters
union
allselect'b
',n'簿'
union
allselect'c
',n'錯'
union
allselect'd
',n'鵽'
union
allselect'e
',n'樲'
union
allselect'f
',n'鰒'
union
allselect'g
',n'腂'
union
allselect'h
',n'夻'
union
allselect'j
',n'攈'
union
allselect'k
',n'穒'
union
allselect'l
',n'鱳'
union
allselect'm
',n'旀'
union
allselect'n
',n'桛'
union
allselect'o
',n'漚'
union
allselect'p
',n'曝'
union
allselect'q
',n'囕'
union
allselect'r
',n'鶸'
union
allselect's
',n'蜶'
union
allselect't
',n'籜'
union
allselect'w
',n'鶩'
union
allselect'x
',n'鑂'
union
allselect'y
',n'韻'
union
allselect'z
',n'咗'
)spellingtable
where chinesecharacters >
=@singlecharacter
collate chinese_prc_cs_as_ks_ws
order
by py asc
)else
set@returnstring
=@returnstring
+@singlecharacter
set@chinesestring
=right(@chinesestring,len(@chinesestring)-1)
endreturn
@returnstring
endgo
select dbo.getinitialletter('後記說明:中華人民共和國(1949 - 2016)')
返回:zhrmghg(
1949
-2016)
1、unicode 字元是國際組織制定的可以容納世界上所有文字和符號的字元編碼方案,世界上的任何字元都有唯一對應的一組十六進製制表示(例 『漢』:6c49),漢字對應的範圍轉換為十進位制之後是:19968 - 40869.
2、臨時表 spellingtable 字段 chinesecharacters 中儲存的漢字,以對應的 py 字段開頭的漢語拼音的最後乙個漢字。 可查新華字典:
SQL Server 筆記二 初學
1.建立帶引數的資料庫 我們寫的查詢語句,一般稱為sql指令碼 帶引數的查詢語句 create database school onprimary name schoolmain 主資料檔案邏輯名稱 size 10mb,初始大小 filegrowth 10 檔案增長比例 filename d sch...
學習筆記 Sqlserver 獲取當前天數
sql server上的日期獲取與oracle確實有些不同,現將日期獲取的方法說明如下 以下getdate 為獲取當天的日期,按照實際需求,可以替換成引數或實際的日期 當月天數 select day dateadd ms,3,dateadd m,datediff m,0,getdate 1,0 當月...
SQLserver 獲取時間
1.獲取當前日期 selectgetdate 格式化 selectconvert varchar,getdate 120 2017 05 12 16 33 10 2.獲取當前年 2017 selectdatename yyyy,getdate 2017 selectdatename year,get...