根據英文本母查詢漢字。。。

2021-06-04 14:03:49 字數 2151 閱讀 2265

-測試資料---

if object_id('[pactinfo]') is not null drop table [pactinfo]

gocreate table [pactinfo]([id] int,[pactname] varchar(4))

insert [pactinfo]

select 1,'正常' union all

select 2,'中國' union all

select 3,'做飯' union all

select 4,'加發'

---引用前輩們的乙個函式---

create function f_getpy(@str nvarchar(4000))

returns nvarchar(4000)

as begin

declare @strlen int,@re nvarchar(4000)

declare @t table(chr nchar(1) collate chinese_prc_ci_as,letter nchar(1))

insert into @t(chr,letter)

select '吖 ', 'a ' union all select '八 ', 'b ' union all

select '嚓 ', 'c ' union all select '咑 ', 'd ' union all

select '妸 ', 'e ' union all select '發 ', 'f ' union all

select '旮 ', 'g ' union all select '鉿 ', 'h ' union all

select '丌 ', 'j ' union all select '咔 ', 'k ' union all

select '垃 ', 'l ' union all select '嘸 ', 'm ' union all

select '拏 ', 'n ' union all select '噢 ', 'o ' union all

select '妑 ', 'p ' union all select '七 ', 'q ' union all

select '呥 ', 'r ' union all select '仨 ', 's ' union all

select '他 ', 't ' union all select '屲 ', 'w ' union all

select '夕 ', 'x ' union all select '丫 ', 'y ' union all

select '帀 ', 'z '

select @strlen=len(@str),@re= ' '

while @strlen> 0

begin

select top 1 @re=letter+@re,@strlen=@strlen-1

from @t a where chr <=substring(@str,@strlen,1)

order by chr desc

if @@rowcount=0

select @re=substring(@str,@strlen,1)+@re,@strlen=@strlen-1

end

return(@re)

end

---查詢---

select

* from

[pactinfo]

where

left(dbo.f_getpy(pactname),1)='z'

---結果---

id pactname

----------- --------

1 正常

2 中國

3 做飯

mysql漢字按英文本母排序

按照漢字的拼音排序,用的比較多是在人名的排序中,按照姓氏的拼音字母,從a到z排序 如果儲存姓名的字段採用的是gbk字符集,那就好辦了,因為gbk內碼編碼時本身就採用了拼音排序的方法 常用一級漢字3755個採用拼音排序,二級漢字就不是了,但考慮到人名等都是常用漢字,因此只是針對一級漢字能正確排序也夠用...

英文本母排序

116.英文本母排序 20分 c時間限制 3000 毫秒 c記憶體限制 3000 kb 題目內容 編寫乙個程式,當輸入英文本串時,計算機將這個句子中的英文本母按字典字母順序重新排列,排列後的單詞的 長度要與原始句子中的長度相同,並且要求只對 到 的字母重新排列,其它字元保持原來的狀態。輸入描述 乙個...

Python Opencv KNN英文本母識別

特徵集分析 資料集為letter recognition.data,一共為20000條資料,以逗號分隔,資料例項如下所示,第一列為字母標記,剩下的為不同的特徵。t,2,8,3,5,1,8,13,0,6,6,10,8,0,8,0,8 學習方法 1 讀入資料,並去除分隔號 2 將資料第一列作為標記,剩下...