* 그럴 경우, 첫 번째 스트링이 있는 문자열을 추출해, 값이 있는 행만 다시 추려내면 편하다.
* 참조 : http://blog.sqlauthority.com/2012/10/14/sql-server-find-first-non-numeric-character-from-string/
* 컬럼값에 대한 첫번째 스트링을 찾아서 보여주는 쿼리는 다음과 같다. 예를 들어, A_Table에 Column_1을 대상으로 찾아보자.
SELECT PATINDEX('%[^0-9]%',Column_1) 'Position of NonNumeric Character',
SUBSTRING(Column_1,PATINDEX('%[^0-9]%',Column_1),1) 'NonNumeric Character',
Column_1 'Original Character'
FROM A_Table
* 조금 응용하여, 고객 테이블(Customer)에 전화번호(Telephone_NO)와 같은 컬럼이 있는데, int나 numeric형이 아니어서 간혹 숫자가 아닌 값이 들어가게 된 경우를 생각해보자.
* 그 때 숫자 외의 값이 하나라도 들어간 행을 모두 추출하는 쿼리는 다음과 같다.
SELECT t.Telephone_NO
FROM (
SELECT Telephone_NO,
PATINDEX('%[^0-9]%',Telephone_NO) as StringFound
FROM Customer
) as t
WHERE StringFound is not NULL
댓글 없음:
댓글 쓰기