반응형
쿼리를 통해 데이터 전처리가 필요한 경우가 생겼다.
정규식을 활용해 데이터 전처리를 했다.
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
참고자료
반응형
'Programming > MS-SQL' 카테고리의 다른 글
MS-SQL: html 태그 제거하기 / html tag remove (0) | 2022.03.08 |
---|