Programming/MS-SQL

MS-SQL: 정규식 사용하기 / GetRegExReplace

고고마코드 2022. 3. 8. 16:38
반응형

쿼리를 통해 데이터 전처리가 필요한 경우가 생겼다.
정규식을 활용해 데이터 전처리를 했다.


GetRegExReplace (정규식 함수)

CREATE FUNCTION dbo.GetRegExReplace
(
    @TargetText VarChar(MAX), -- 원본 문자열 값 
    @Expression VarChar(80),-- 정규 식 형태 문자열 
    @ReplaceValue VarChar(80) -- 교체할 문자
)
RETURNS VARCHAR(MAX)
AS
BEGIN
    DECLARE @ReturnValue VARCHAR(MAX) = @TargetText;

    IF ISNULL(@ReturnValue,'') = '' 
        RETURN @ReturnValue;

    WHILE 1 =1 
    BEGIN
        IF PATINDEX('%' + @Expression + '%' , @ReturnValue) = 0
            BREAK;
        SET @ReturnValue = STUFF(@ReturnValue,PATINDEX('%' + @Expression + '%' , @ReturnValue),1,@ReplaceValue)
    END

    RETURN @ReturnValue
END

정규식 활용

  • 숫자만 출력
select job.dbo.GetRegExReplace('ㄱㅎ테스트test1234!@#$', '[^0-9]', '')
1234
  • 숫자, 영어, 한글만 사용 (특수문자 제거)
select job.dbo.GetRegExReplace('ㄱㅎ테스트test1234!@#$', '[^0-9a-zA-zㄱ-ㅎ가-힣]', '')
ㄱㅎ테스트test1234

참고자료

  1. hwoarang757.tistory.com
반응형

'Programming > MS-SQL' 카테고리의 다른 글

MS-SQL: html 태그 제거하기 / html tag remove  (0) 2022.03.08