日期:2014-05-18  浏览次数:20758 次

求删除字符串左右两边空,空格,其它不可见乱码的语句
RT

------解决方案--------------------
ltrim()rtrim() 最后句不知道什么意思
------解决方案--------------------
去空格可以用 ltrim 和 rtrim 分别是左右
------解决方案--------------------
探讨
上面的用了,字段里面有空的删不掉,影响我判断字符串长度

我记得有人写过。。。

------解决方案--------------------
可能是全角空格的问题
------解决方案--------------------
如果仅在ASC码范围内:
SQL code
create function delstr(@t varchar(100))
returns varchar(100)
as
begin
select @t=stuff(@t,number,1,CHAR(32)) 
from master..spt_values 
where type='p' and number between 1 and len(@t) and number in(
charindex(char(9),@t,number),
CHARINDEX(char(10),@t,number),
CHARINDEX(char(13),@t,number),
CHARINDEX(char(28),@t,number),
CHARINDEX(char(29),@t,number),
CHARINDEX(char(30),@t,number),
CHARINDEX(char(31),@t,number),
CHARINDEX(char(127),@t,number)
)
return replace(@t,CHAR(32),'')
end
go
select dbo.delstr(' fasdfas'+CHAR(9)+'dfsdf sadf  ')
/*
----------------------------------------------------------------
fasdfasdfsdfsadf

(1 行受影响)

*/
go
drop function dbo.delstr