Search

2015년 12월 15일 화요일

[Database] [MSSQL] 컬럼 값에서 숫자만 추출하기.

* 전화번호와 같은 스트링 컬럼에서 숫자만을 가져와야 하는데, 여러 불필요한 문자가 섞여있는 경우에 아래와 같이 함수를 만들어 사용하면 편리하다.
* 출처 : http://stackoverflow.com/questions/16667251/query-to-get-only-numbers-from-a-string

CREATE FUNCTION func_getNumeric (@strAlphaNumeric VARCHAR(256)) 
returns VARCHAR(256) 
AS 
  BEGIN 
      DECLARE @intAlpha INT 

      SET @intAlpha = Patindex('%[^0-9]%', @strAlphaNumeric) 

      BEGIN 
          WHILE @intAlpha > 0 
            BEGIN 
                SET @strAlphaNumeric = Stuff(@strAlphaNumeric, @intAlpha, 1, '') 
                SET @intAlpha = Patindex('%[^0-9]%', @strAlphaNumeric) 
            END 
      END 

      RETURN Isnull(@strAlphaNumeric, 0) 
  END 

GO 


* 위와 같이 func_getNumeric이란 함수를 만들고 나면 아래와 같이 사용하면 된다.

 -- A_Table의 Column_1을 대상으로 숫자만 추출하기.
SELECT func_getNumeric(Column_1) 
from A_Table



댓글 없음:

댓글 쓰기