728x90
DECLARE @STR VARCHAR(100)
SET @STR = 'ABC '
SELECT CASE WHEN @STR = RTRIM(LTRIM(@STR)) THEN 'SAME' ELSE 'DIFF' END
결과는 SAME 입니다.
WHERE RTRIM(LTRIM([문자열컬럼])) <> [문자열컬럼]
-> 원하는 결과가 나오지 않음
WHERE RTRIM(LTRIM([문자열컬럼])) = [문자열컬럼]
AND DATALENGTH(RTRIM(LTRIM([문자열컬럼]))) <> DATALENGTH([문자열컬럼])
-> 원하는 결과가 나옴
MSSQL 앞공백 뒷공백 앞뒤공백 문자 비교 시 Tip
문자열 컬럼에 대해 RTRIM, LTRIM 적용 후 문자열 비교 시 유의 할 점을 공유 드립니다.
'ABC ' = 'ABC'
TRY
WHERE RTRIM(LTRIM(문자열컬럼)) <> 문자열컬럼
-> 원하는 결과가 나오지 않음
WHERE RTRIM(LTRIM([문자열컬럼])) =[문자열컬럼]
AND DATALENGTH(RTRIM(LTRIM(문자열컬럼))) <> DATALENGTH(문자열컬럼)
-> 원하는 결과가 나옴
MSSQL의 TSQL은 ANSI/ISO 표준에 따라 뒤 공백이 있는 문자와 없는 문자를 비교 시 공백을 제거한 비교 연산을 수행합니다.
뒤 공백이 있는 경우 단순 문자열 비교로는 원하는 결과가 나오지 않으니 유의 하셔야 합니다.
"Transact-sql은 대부분의 비교 연산에 대해 'abc' 및 'abc ' 문자열을 동일 하 게 간주 합니다."
'프로그래밍 > TSQL' 카테고리의 다른 글
[MSSQL] FLOAT를 문자열로 바꾸기 (1) | 2021.01.06 |
---|---|
[MSSQL]ssms 데이터 가져오기 tip (0) | 2020.11.18 |
[MSSQL] 동적쿼리 (FLOAT 문자 변환 방법) (0) | 2020.11.06 |
MSSQL 동적쿼리 파라미터 전달(SP_EXECUTESQL WITH PARAMETER) (0) | 2020.11.06 |
[MSSQL] 다른 프로세스와의 교착 상태가 발생하여 실행이 중지되었습니다. TRACEON / TRACEOFF / ERRORLOG 사용법 (0) | 2020.10.23 |
댓글