2011-12-14 3 views
1

정규 표현식을 사용하여 SQL 문장에서 공백을 찾을 수있는 방법과 방법이 궁금합니다.SQL의 정규 표현

실제 문자열 뒤에 공백을 무제한으로 가질 수있는 문자열이 있습니다.

예를 들어

:

 

"STRING " 
"STRING " 
 

일치,하지만

 

"STRING A" 
"STRINGB" 

하지 않을 것입니다.

는 지금은이 : 아주 내가 원하는 결과를 반환 나던

like 'STRING%' 

. 내가는 SQL 서버를 사용하고

2008 년

답변

4

간단한 같은 끝에 공백 문자열 찾을 수 있습니다

where col1 like '% ' 

또한 탭, 캐리지 리턴 또는 라인 수 있도록하려면 피드 :

where col1 like '%[ ' + char(9) + char(10) + char(13) + ']' 

귀하의 의견에 "문자열"다음에 공백이있는 숫자를 찾으려면

where rtrim(col1) = 'string' 
+0

내가 임의의 수를 필요한 경우 공백 앞에 문자가 있다면, 이것이 효과가 있습니까? where col1 like 'STRING %' – user489041

+0

그러면 STRING으로 시작하고 그 다음에 공백으로 끝나는 문자열을 찾습니다. – Andomar

+0

네, 당신의 말을 봅니다. 당신의 응답을 주셔서 감사합니다. 찾고자하는 특정 문자열을 허용하도록 첫 번째 예제를 수정 한 다음 공백을 숫자로 입력 할 수 있습니다. – user489041

0

당신은 당신을 위해 문자열을 찾을 수

where len(col1) <> len(rtrim(col1)) 
+0

작동하지 않습니다. 후행 공백은'LEN'에 의해 무시됩니다 –

+0

내 마음이 미끄러 져서 ... len (col1) <> len (col1 + ":")이 방법의 의도입니다. 탁월한 마틴. –

0

Andomar의 답변을 시도 할 수 있지만, 내 스파이더 맨의 감각은 문제의 범위가 단순히 공백을 찾는 것보다 더 큰 어쩌면 나에게 말한다.

내가 의심 당신이 다음을 정리할 수 있도록, 당신이 공백을 발견하고, 경우, 간단한

UPDATE Table1 
SET col1 = RTRIM(col1) 

은 열에서 후행 공백을 제거합니다.

또는 RTRIM (LTRIM (col1))은 공백과 공백을 제거합니다.

또는 모두 공백을 포함하는 문자열을 제거하려면 REPLACE (col1, ''. '')를 사용하십시오.

RTRIM과 LTRIM은 공백에서만 작동하므로 탭/CR/LF를 제거하려면 REPLACE를 사용해야합니다. 문자열의 앞/뒤 부분에서만 이들을 제거하는 것은 가능하지만 완전히 간단하지는 않습니다. 데이터베이스 공급 업체에게 ANSI SQL 99 표준 TRIM 기능을 구현하여이 기능을 훨씬 쉽게 구현하십시오.

0
where len(col1 + 'x') <> len(rtrim(col1)) + 1