Summarize the implementation steps of automatically generating pinyin codes from table data in SQL server:
1. Create a method and pass in a parameter. This parameter is what kind of data you want to automatically generate the Pinyin code.
The following code can be directly copied to your editor to run. After running, you can call the fn_GetPy(str) method.
CREATE function fn_GetPy(@str nvarchar(4000))
returns nvarchar(4000)
--WITH ENCRYPTION
as
begin
declare @intLen int
declare @strRet nvarchar(4000)
declare @temp nvarchar(100)
set @intLen = len(@str)
set @strRet = ''
while @intLen > 0
begin
set @temp = ''
select @temp = case
when substring(@str,@intLen,1) >= '帀' then 'Z'
when substring(@str,@intLen,1) >= '丫' then 'Y'
when substring(@str,@intLen,1) >= '夕' then 'X'
when substring(@str,@intLen,1) >= '屲' then 'W'
when substring(@str,@intLen,1) >= '他' then 'T'
when substring(@str,@intLen,1) >= '仨' then 'S'
when substring(@str,@intLen,1) >= '呥' then 'R'
when substring(@str,@intLen,1) >= '七' then 'Q'
when substring(@str,@intLen,1) >= '妑' then 'P'
when substring(@str,@intLen,1) >= '噢' then 'O'
when substring(@str,@intLen,1) >= '拏' then 'N'
when substring(@str,@intLen,1) >= '嘸' then 'M'
when substring(@str,@intLen,1) >= '垃' then 'L'
when substring(@str,@intLen,1) >= '咔' then 'K'
when substring(@str,@intLen,1) >= '丌' then 'J'
when substring(@str,@intLen,1) >= '铪' then 'H'
when substring(@str,@intLen,1) >= '旮' then 'G'
when substring(@str,@intLen,1) >= '发' then 'F'
when substring(@str,@intLen,1) >= '妸' then 'E'
when substring(@str,@intLen,1) >= '咑' then 'D'
when substring(@str,@intLen,1) >= '嚓' then 'C'
when substring(@str,@intLen,1) >= '八' then 'B'
when substring(@str,@intLen,1) >= '吖' then 'A'
else rtrim(ltrim(substring(@str,@intLen,1)))
end
--对于汉字特殊字符,不生成拼音码
if (ascii(@temp)>127) set @temp = ''
--对于英文中小括号,不生成拼音码
if @temp = '(' or @temp = ')' set @temp = ''
select @strRet = @temp + @strRet
set @intLen = @intLen - 1
end
return lower(@strRet)
end
2. After performing step one, you can directly substitute the method: fn_GetPy(str), str is the parameter to be passed in.
Examples:
Automatically generate a pinyin code from the name field in the table department table (DicDept_KS). Note: Code, Name, and PYM are all fields in the table DicDept_KS.
--Query whether the pinyin code is generated in this department table, and modify it after confirming that the pinyin code is generated
SELECT Code, name , dbo.fn_GetPy(name) AS PYM FROM dbo.DicDept_KS
--Modify the PYM field in the department table to the generated pinyin code
update dbo.DicDept_KS set PYM =dbo.fn_GetPy(name )
The final result is as follows:
--The UPPER (str ) function can be used to convert the generated Pinyin code into uppercase .
SELECT Code ,Name,UPPER(PYM) as PYM FROM DICDEPT_KS