2016-07-10 2 views
0

이 예제에서는 ('공백') 및 (공백)을 어떻게 표시합니까?SQL Server : 후행 공백 문자로 구분

create table #example 
( 
    myString varchar(50) 
) 

insert into #example values ('space'), ('space ') 

select distinct * 
from #example 

SQL 비교 연산자는이 두 문자열을 동일한 것으로 간주하지만이 경우는 아닙니다.

https://support.microsoft.com/en-us/kb/316626

SQL WHERE clause matching values with trailing spaces

후속은에 대답 :

참고 :

select * 
from table1 
left join table2 on table1.id1 = table2.id1 
       and datalength(table1.id1) = datalength(table2.id1) 

답변

1

이 시도 :

insert into #example values ('space'), 
('space '), 
('space2'), 
('space2'); 

결과 :이 데이터와

SELECT A.myString 
FROM (
    SELECT DISTINCT myString, DATALENGTH(myString) [DataLength] 
    FROM #example 
    ) A 

myString 
-------- 
space 
space 
space2 
+0

나는 추가 된 문자를 제거한 것을 함께 해킹했습니다. 그러나 이것은 더 우아합니다. 고마워. –

0

당신이 할 수있는 다음 DATALENGTH(...) 기능도 후행 공백에 민감 가입 생성 할 수 있습니다 요 구별 키워드를 제거하여 달성 UR 선택 STMT ... 선택

또는

가 * 내가 생각

# 예제하지만에서 불과 이것보다이 질문에 대한 더 많은 것이 # 예제에서

선택 mystring에 ... ?

편집 :

select myString 
--, rtrim(myString) as newstring -- uncomment for troubleshooting 
from #example 
WHERE rtrim(myString) not like '% %' 
+0

네 h ... 질문을 업데이트했습니다. 응답을위한 Thx. –

+0

일부 단위 테스트를했는데 항상 작동하지는 않습니다 ... –