DB, SQL

[MSSQL] 커스텀 함수 - 비숫자 제거 함수

isaac.kim 2024. 9. 6. 19:40
728x90
반응형

[MSSQL] 커스텀 함수 - 비숫자 제거 함수

유지 보수, 개발을 하다가 Java/Spring에 있는 소스를 MSSQL 프로시저로 옮겨야 할 일이 생겼다.

 

Java/Spring에선 동작하던 정규식 사용이 MSSQL에서 정규식 적용이 안되었다.

 

따라서, 숫자가 아닌 비숫자를 모두 제거하는 커스텀 함수를 다음과 같이 만들어 사용하고 있다.

CREATE FUNCTION RemoveNonDigits
(
	@input NVARCHAR(MAX)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
	DECLARE @result NVARCHAR(MAX) = ''
	DECLARE @i INT = 1
	WHILE @i <= LEN(@input)
	BEGIN
		IF SUBSTRING(@input, @i, 1) LIKE '[0-9]'
		BEGIN
			SET @result = @result + SUBSTRING(@input, @i, 1)
		END
		SET @i = @i + 1
	END
	RETURN @result;
END
GO

 

간단한 작업에는 Java/Spring단에서 코드를 작성하는 것이 좋겠지만(개인적으로 선호함), 

Java/Spring에서만 코드를 작성했을 때 비효율적인 처리를 할 때도 있어서(기존 코드 반복문 위주 사용)

이번에 일괄 처리 방식을 사용하도록 프로시저로 변환하는 작업을 하고 있다.

728x90
반응형