2011-04-08 2 views
2

내 테이블에서 특정 열에 특정 열에 Ё 㺞 㾸 ꖆ 㩜 癈 like 같은 정크 문자가 있습니다. 나는 그런 행을 아래와 같이 필터링하는 것을 시도하고있다 :SQL Server 정규식을 사용하여 정크 문자로 행 필터링

SELECT Col1, Col2, Col3 FROM MyTable WHERE Col2 NOT LIKE '%[REGEX]%' 
  1. 더 좋은 방법이 있습니까?
  2. 아니요, 적절한 정규식을 생성하려면 어떻게해야합니까? Col2가 영숫자, 문장 부호 및 공백 이외의 문자를 사용하는 레코드는 필요 없습니다.
+0

SQL Server는 상자 중 어떤 점잖은 정규식 지원하지 않습니다 .. 부정 (^) 및 범위 또는 그래서 당신은 같은 것을 사용할 수 있지만 문자 세트를 지원합니다; SQL CLR 어셈블리를 사용하여 확장 할 수 있지만 T-SQL 자체는 ** 매우 제한적입니다 ** 정규 표현식 지원 ... –

답변

6

SQL Server는 LIKE에서 적절한 RegExs를 지원하지 않습니다.

패턴 구문은

WHERE Col2 LIKE N'%[^0-9A-Za-z .,;:]%' collate Latin1_General_BIN 
+0

Martin. 나는 이것을 밖으로 시험 할 것이다! – Moon

+0

OK, 다음 식을 시도했습니다. N '% [^ 0-9A-Za-z' ~! @ # $ %^& *() -_ = + [{]} \ |; ""', <.> /?] % ' 그러나 ~ 25,000 레코드에 대해 0 레코드를 반환합니다. 분명히 잘못된 일을하고 있습니다. 제발 도와주십시오. – Moon

+0

거기에') -_'가 있으면 SQL Server는 다음과 같이 처리합니다. 범위를 끝내십시오 .- 끝에 넣으십시오. 또한 '_'을 이스케이프해야하는지 궁금합니다. –

관련 문제