2016-06-27 2 views
0

공백을 허용하지 않는 대부분의 리터럴에서 영숫자가 아닌 문자가 포함 된 모든 행을 추출하려고합니다. 모든 구두점, 대괄호 - 사각형 및 원형, 통화 기호 등필드에 영숫자가 아닌 문자가 포함 된 행을 반환하십시오.

Return sql rows where field contains ONLY non-alphanumeric characters과 같이 조언을 적용하려고했지만 not LIKE '%[a-z0-9]%'을 사용하면 행을 공백으로 반환합니다. 벌금. 정규식을 not LIKE '%[a-z0-9 ]%'으로 수정하고 이제는 0 행이 반환됩니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

사용 된 dbms에 태그를 지정하십시오. (그'LIKE' 버전은 특정 제품입니다 ...) – jarlh

+0

사용중인 데이터베이스에 질문을 태그하십시오. –

+0

사과, 편집하여 우리는 SQL Server 2005를 사용하고 있습니다. – GavinP

답변

4

SQL Server에 대한 질문입니다. 당신은 SQL 서버에서하고 싶은 일을하기 위해, 당신은 할 것 :

where col like '%[^a-zA-Z0-9]%' 

등 패턴의 ^ 목록에 모든 문자를하지 일치합니다.

+0

아, 그래. 답변 해주셔서 감사합니다. 그래서 공백을 허용하려면'% [^ a-zA-Z0-9] % ''를 할 수 있습니다. 특정 구두점을 허용하기 위해 규칙을 변경해야하는 경우, 그 문자를 마지막에 추가합니다. – GavinP

+0

@GavinP'REGEX'는 T-SQL에서 제한되어 있으므로 https://msdn.microsoft.com/en-us/library/ms179859.aspx를 확인하고 https://technet.microsoft.com/en- us/library/ms187489 (v = sql.105) .aspx로 제한 사항을 확인하십시오. – scsimon

+0

@ GavinP. . . 대괄호 사이에 공백이나 다른 문자를 추가 할 수 있습니다. 대괄호 자체를 추가하려면주의하십시오. –

관련 문제