2013-11-25 2 views
0

내 문자열에 선행 공백과 후행 공백이 있습니다 (아래 참조).tsql 선행 공백 및 후행 공백이있는 LTRIM 및 LEN

LRTIM 기능을 적용하면 작동하는 것 같습니다. 다음으로 문자열에 LEN 함수가있는 LTRIM 함수를 중첩하면 길이가 1 씩 (예 : 원래 문자열의 길이가 16이고 LTRIM이 문자열에서 하나의 선행 공백을 제거 했으므로 LEN 14가 아닌 15의 길이를 돌려 준다. 설명이 있습니까?

SELECT 
' This is a test ' AS origStr 
,LEN(' This is a test ') AS origStrLen 
,'[' + LTRIM(' This is a test ') + ']' AS ltrimStr 
,LEN(LTRIM(' This is a test ')) AS strLtrimLen 
; 

결과 :

This is a test | 16 | [This is a test ] | 14 | 
+0

4. 이 문제를 설명하는 링크를 제공해 주셔서 감사합니다. 나는 DATALENGTH 대 LEN에 대해 읽었다. – user3033344

답변

0

len의()는 문자열 공간 후에 계산하지 때문입니다.

LEN(LTRIM(' This is a test ')) has one space before and one space after string. 

예 : SELECT LEN('TEXT ') RETURNS --->이 특정의 질문을 다시 게시 죄송

관련 문제