+ -
当前位置:首页 → 问答吧 → LTRIM, RTRIM的问题

LTRIM, RTRIM的问题

时间:2011-12-14

来源:互联网

最近老遇到一些问题,LTRIM,RTRIM 只能去掉开头的空格,但是一些非打印字符就不行了,有木有办法都去掉呢?Replace不行,Replace把所有的都给去掉了,写个过程又感觉有点太麻烦了,不知道大家有没有遇到过呢?

作者: yuanqingyu0123   发布时间: 2011-12-14

非打印字符的编码并非连续的,木有简单的办法去掉,看来你只能写个函数了.

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

什么是非打印字符
ltrim去左侧空格
rtrim去右侧空格

作者: pengxuan   发布时间: 2011-12-14

非打印字符?replace(字段,char(9),'')?

作者: ssp2009   发布时间: 2011-12-14

引用 2 楼 pengxuan 的回复:

什么是非打印字符
ltrim去左侧空格
rtrim去右侧空格

回车,换行,Tab

作者: yuanqingyu0123   发布时间: 2011-12-14

SQL code
declare @str varchar(50)
SELECT @STR='    !#$@%$#^%ABC123'
SELECT @STR,STUFF(@STR,1,PATINDEX('%[0-9A-Za-z.]%',@STR)-1,'')


你指定合法字符,然后这样去前缀到第一个合法字符代替LTRIM

作者: guguda2008   发布时间: 2011-12-14

char(9) 水平制表符 char(10)换行键 char(13)回车键

作者: ssp2009   发布时间: 2011-12-14

偷个懒,RTRIM用REVERSER处理一下。
SQL code
declare @str varchar(50)
SELECT @STR='    



!#$@%$#^%ABC123*&^
!#@%$#  


)( '
SELECT @STR,STUFF(@STR,1,PATINDEX('%[0-9A-Za-z.]%',@STR)-1,'')
,REVERSE(STUFF(REVERSE(@STR),1,PATINDEX('%[0-9A-Za-z.]%',REVERSE(@STR))-1,''))

作者: guguda2008   发布时间: 2011-12-14

引用 6 楼 ssp2009 的回复:

char(9) 水平制表符 char(10)换行键 char(13)回车键

用REPLACE的话可能会把内容中间的字符去掉。

作者: guguda2008   发布时间: 2011-12-14

还是 写函数才能完全包含。

作者: fredrickhu   发布时间: 2011-12-14