+ -
当前位置:首页 → 问答吧 → SQL 中英文标点符号转换

SQL 中英文标点符号转换

时间:2011-12-19

来源:互联网

SQL 中英文标点符号转换

要求把字符串中的 中文标点符号 转换为 英文标点符号, 再把全角转换为半角
    中文标点符号:~!◎#¥%……※×()——+;‘:“,。、《》?【】『』
转换成 英文标点符号:~!@#$%^&*()_+;':",./<>?[]{}

 全角转换为半角 网有能找到函数.就是 中文标点符号 转换为 英文标点符号 不会.

作者: lilin421046   发布时间: 2011-12-19

ding

作者: lilin421046   发布时间: 2011-12-19

做了下,楼主自己再测测吧:
SQL code
create function c1toc2(@c3 nvarchar(1000))
returns nvarchar(1000)
as
begin
--declare @c1 nvarchar(30),@c2 nvarchar(30)
--set @c1='~!◎#¥%……※×()_+;‘:“,。、《》?【】『』'
--set @c2='~!@#$%^&*()_+;'':",./<>?[]{}'
select @c3=stuff(@c3,number,1,substring('~!@#$%^&*()_+;'':",./<>?[]{}',charindex(substring(@c3,number,1),'~!◎#¥%…※×()_+;‘:“,。、《》?【】『』'),1))
from master..spt_values where type='p' and number between 1 and len(@c3) and charindex(substring(@c3,number,1),'~!◎#¥%…※×()_+;‘:“,。、《》?【】『』')>0
set @c3=replace(@c3,'^^','^')
return @c3
end
go
declare @c nvarchar(1000)
set @c='你好,今天是周未!(你)吃过没有?他说:“你今天很漂亮……”※《◎【】》、『%#』这两本书很有意思。'
select dbo.c1toc2(@c)
/*

----------------------------------------------------------------------------
你好,今天是周未!(你)吃过没有?他说:"你今天很漂亮^”&<@[]>/{%#}这两本书很有意思.

(1 行受影响)

*/
go
drop function dbo.c1toc2

作者: qianjin036a   发布时间: 2011-12-19

要增加一个”.

作者: qianjin036a   发布时间: 2011-12-19

SQL code
create function c1toc2(@c3 nvarchar(1000))
returns nvarchar(1000)
as
begin
--declare @c1 nvarchar(30),@c2 nvarchar(30)
--set @c1='~!◎#¥%……※×()_+;‘:“,。、《》?【】『』'
--set @c2='~!@#$%^&*()_+;'':",./<>?[]{}'
select @c3=stuff(@c3,number,1,substring('~!@#$%^&*()_+;'':"",./<>?[]{}',charindex(substring(@c3,number,1),'~!◎#¥%…※×()_+;‘:“”,。、《》?【】『』'),1))
from master..spt_values where type='p' and number between 1 and len(@c3) and charindex(substring(@c3,number,1),'~!◎#¥%…※×()_+;‘:“”,。、《》?【】『』')>0
set @c3=replace(@c3,'^^','^')
return @c3
end
go
declare @c nvarchar(1000)
set @c='你好,今天是周未!(你)吃过没有?他说:“你今天很漂亮……”※《◎【】》、『%#』这两本书很有意思。'
select dbo.c1toc2(@c)
/*

--------------------------------------------------------------------------------------------------
你好,今天是周未!(你)吃过没有?他说:"你今天很漂亮^"&<@[]>/{%#}这两本书很有意思.

(1 行受影响)

*/
go
drop function dbo.c1toc2

作者: qianjin036a   发布时间: 2011-12-19