博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql 函数 汉字转拼音
阅读量:5956 次
发布时间:2019-06-19

本文共 2050 字,大约阅读时间需要 6 分钟。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
GO
/****** Object: UserDefinedFunction [dbo].[fn_GetPy] Script 
Date
: 2017/1/4 10:53:49 ******/
SET 
ANSI_NULLS 
ON
GO
SET 
QUOTED_IDENTIFIER 
ON
GO
ALTER 
function 
[dbo].[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

  效果如下:

 

本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/6247781.html,如需转载请自行联系原作者

你可能感兴趣的文章
Shell命令_Cron使用
查看>>
POJ2425 A Chess Game[博弈论 SG函数]
查看>>
深入Spring:自定义注解加载和使用
查看>>
计划的定义与要素
查看>>
LR报错Error -27780: [GENERAL_MSG_CAT_SSL_ERROR]connect to host "XXX.XXX.com" failed解决方法
查看>>
mysql 索引B-Tree类型对索引使用的生效和失效情况详解
查看>>
获取表信息(MSSQL)
查看>>
css3 transform 旋转div
查看>>
一个batch如何通过一个网络
查看>>
沉没成本
查看>>
redux简明学习
查看>>
速度挑战 - 2小时完成HTML5拼图小游戏
查看>>
Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析
查看>>
二叉树学习(二)
查看>>
外卖小程序对接飞鹅小票打印的实现
查看>>
鹅厂内部干货|微信小游戏开发技术怎么应用?
查看>>
指数基金投资指南读书笔记
查看>>
Java实现归并排序(转)
查看>>
background
查看>>
iOS __weak学习碰到的疑问
查看>>