SQL Serverに問題があります。私はLtrimとRtrimを使ってスペースを削除したい。SQL Serverトリム機能
私のクエリは、なぜそのスペースを削除しないで、この
select len('test ')
戻る6
select len(rtrim(ltrim('test ')))
戻る6
のようなものですか?
私はこのスペースのASCII値をチェックしては、32
すべてのヘルプですか?
は
SQL Serverに問題があります。私はLtrimとRtrimを使ってスペースを削除したい。SQL Serverトリム機能
私のクエリは、なぜそのスペースを削除しないで、この
select len('test ')
戻る6
select len(rtrim(ltrim('test ')))
戻る6
のようなものですか?
私はこのスペースのASCII値をチェックしては、32
すべてのヘルプですか?
は
この文字列にスペースがないので - 2水平タブ文字があるtest
後は(\t
)。
優れた答え。確かに6のLen()カウントについて説明しますが、ASCIIコードはどうですか? +1 – markblandford
OPがより多くの情報を提供しない限り、推測する方法はありません。 –
レンReturns the number of characters of the specified string expression, excluding trailing blanks.
ありがとうしたがって、lenはあなたの文字列の中の余分な末尾の空白をカウントされません。文字列の前に空白を置くと、それらは数えられます。
を選択lenの選択しますSQLサーバーの標準で。 LEN()意志ませ回数末尾のスペース -
SELECT LEN('test ')
は4ではなく6を返す必要があります:
そのトリミングされていない、その最初のケースで数えられていない。 – alykhalid
はかなりのように私には意味がありません(lenはトリミングを行います)。
あなたがやった場合のに対し:DATALENGTH は回数末尾のスペースがそうであるように
SELECT DATALENGTH('test ')
これは6を返します。
文字列にスペースがないので[6]を返します。[これらはタブです](http://stackoverflow.com/a/9618274/95)。 –
@MarekGrzenkowicz - それはそれを説明するでしょう。 OPは彼がチェックしたと言ったが、彼らはアスキー32(スペース)でした – AdaTheDev
OPがあなたのコメントに返信するのを待ってみましょう。私にとってヒントは、最初のクエリが6を返し、文字列がそれよりも長く見えたということでした。 –
あなたは、彼らが実際に最後の空間であるダブルチェックすることができますか? @MarekGrzenkowiczが示唆しているように、それがそれを説明するタブであれば... – AdaTheDev