日期:2014-05-17  浏览次数:20512 次

在线求等。求指导。。。。只替换 半角 问题。。。
下面一样的 句子结果把所有的中文空格也给替换为空了,幸好有备份。 
declare @a char(5) 
set @a= '      ' --这里放一个全角或半角空格 
if @a= ' ' 
print '相 '+@a+ '等 ' 

else 
print '不相等 '
 
是的,全角空格,半角空格同等对待,不知为何这样设计 

declare @q varchar(10) 
set @q= 'a  a ' --这里两个全角空格 
print replace(@q, ' ', '| ') --这里是半角空格 

--result 
--a||a 



怎样 才能 只 让它 替换 半角的 空格的

------解决方案--------------------
SQL code

--全角的ascii碼是161,半腳的是32,寫個函數處理吧,好像沒有直接的函數
select ascii(' ')全角,ascii(' ')半角
/*
全角          半角
----------- -----------
161         32
*/

------解决方案--------------------
被替换的字段为' '(全角的空格)直接替换不行么
------解决方案--------------------
REPLACE(a,' ' collate Chinese_PRC_CS_AI_WS,'|')
------解决方案--------------------
http://topic.csdn.net/t/20040830/10/3321528.html