-1

単一選択ステートメントでは、RTRIMSQLServer2005環境で文字列を使用する必要があります。

あなたの意見では、これを達成するための最も効率的な手法は何ですか?

例:

'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

4 に答える 4

1

LEN(CHAR_FIELD_OR_VAR)末尾のスペースを無視する1つの方法。

left(fld, len(fld))

また

select left(fld, (len(fld + '.')-1)-patindex('%[^ ]%', reverse(fld))+1) 
于 2012-10-25T15:24:26.507 に答える
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
于 2012-10-26T03:32:24.350 に答える
0
Select rtrim(ltrim(col)) from....

カラムの両側をトリミングします

于 2012-10-25T13:47:27.573 に答える
0

あなたの答えはタイトルにあると思います:

SELECT Columm1
, RTRIM(Column1) as Column1Trimmed
FROM Table1

RTRIMは、RightTRIMmingの最も効率的な方法です。

RTRIMなし:

select '*          *'
, REPLACE('*          *',' ','')
于 2012-10-25T13:47:48.870 に答える