sqlserver根據拼音查詢資料

2021-08-27 20:01:28 字數 1754 閱讀 2351

直接將底下的函式執行,通過後台傳入相應的引數即可查詢資料

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'

根據漢字獲取拼音

前段時間因為需要對多個姓名進行排序,然後找了好幾個漢字轉拼音的方法都存在各種bug,要麼是漢字型檔太少,要麼是對於多音字無法識別。最終自己研究了一下gb2312的拼音庫,寫了個很簡單還算比較好用的方法貢獻給大家。import net.sourceforge.pinyin4j.pinyinhelper...

SQL Server根據字段查詢不出記錄

今天寫了一條select語句,很奇怪的一件事,我寫程式幾年了,第一次碰到這個問題,就是資料庫裡有這個值,你根據這個值查詢就是查詢不出來這行記錄。所以我想是不是裡面有空格,回車什麼的,最後果然如此。解決方法 移除回車符 update tablename set colname replace coln...

SQL 拼音查詢

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 chine...