在SQL Server 2005中不使用RTRIM的RTRIM STRING最有效的方法是什么?

时间:2012-10-25 13:43:28

标签: sql sql-server-2005

在单选择语句中,我需要RTRIM SQL Server 2005环境中的字符串。

在您看来,什么是实现这一目标的最有效技术?

示例:

'ALPHA    ' ==> 'ALPHA' (the blanks at the end are removed)
' BETA  ' ==> ' BETA'  (the blank in first position remains, the two blanks at the end are removed)
' GAMMA' ==> ' GAMMA'  (the blank in first position remains)

提前感谢您的帮助。

编辑:我无权使用RTRIM !!

4 个答案:

答案 0 :(得分:1)

LEN(CHAR_FIELD_OR_VAR)忽略尾随空格的一种方式;

left(fld, len(fld))

select left(fld, (len(fld + '.')-1)-patindex('%[^ ]%', reverse(fld))+1) 

答案 1 :(得分:1)

试试这个

Declare @str Varchar(50) = '      GAMMA    ' 
;With Cte As
( 
    Select Data = Substring(@str,Number,1) 
    From master.dbo.spt_values 
    where Number Between 1 And Len(@str) And Type='P' 
) 
Select Data = Replace(Bar,' ',' ') 
From (Select Cast(Data As Varchar(Max)) From Cte For Xml Path(''))Foo(Bar)

<强>结果

Data
      GAMMA

答案 2 :(得分:0)

Select rtrim(ltrim(col)) from....

这将修剪列的两侧

答案 3 :(得分:0)

我认为你的答案在标题中:

SELECT Columm1
, RTRIM(Column1) as Column1Trimmed
FROM Table1

RTRIM是Right TRIMming最有效的方法。

没有RTRIM:

select '*          *'
, REPLACE('*          *',' ','')