2012-03-08 12 views
2

SQL Serverに問題があります。私はLtrimとRtrimを使ってスペースを削除したい。SQL Serverトリム機能

私のクエリは、なぜそのスペースを削除しないで、この

select len('test  ') 

戻る6

select len(rtrim(ltrim('test  '))) 

戻る6

のようなものですか?

私はこのスペースのASCII値をチェックしては、32

すべてのヘルプですか?

+1

あなたは、彼らが実際に最後の空間であるダブルチェックすることができますか? @MarekGrzenkowiczが示唆しているように、それがそれを説明するタブであれば... – AdaTheDev

答えて

7

この文字列にスペースがないので - 2水平タブ文字があるtest後は\t)。

Tabs, not spaces

+0

優れた答え。確かに6のLen()カウントについて説明しますが、ASCIIコードはどうですか? +1 – markblandford

+0

OPがより多くの情報を提供しない限り、推測する方法はありません。 –

0

を選択lenの選択しますSQLサーバーの標準で。 LEN()意志ませ回数末尾のスペース -

SELECT LEN('test ') 

は4ではなく6を返す必要があります:

+0

そのトリミングされていない、その最初のケースで数えられていない。 – alykhalid

2

はかなりのように私には意味がありません(lenはトリミングを行います)。

あなたがやった場合のに対し:DATALENGTH 回数末尾のスペースがそうであるように

SELECT DATALENGTH('test ') 

これは6を返します。

+0

文字列にスペースがないので[6]を返します。[これらはタブです](http://stackoverflow.com/a/9618274/95)。 –

+0

@MarekGrzenkowicz - それはそれを説明するでしょう。 OPは彼がチェックしたと言ったが、彼らはアスキー32(スペース)でした – AdaTheDev

+0

OPがあなたのコメントに返信するのを待ってみましょう。私にとってヒントは、最初のクエリが6を返し、文字列がそれよりも長く見えたということでした。 –

関連する問題