/*
==========================================================================================
FUNC 명 : [dbo].[ufn_LPAD]
FUNC 기능 : @STRING1이 최대 길이 @LENGTH이 될 때까지 왼쪽으로 부터 @STRING2로
채운 문자열을 반환한다.
만약 @STRING1이 @LENGTH보다 길면 왼쪽부터 @LENGTH 길이 만큼 @STRING1
문자열의 일부를 반환한다.
@STRING2는 디폴트로 char(1)이지만 char(1)보다 클 때는 문자열의 오른쪽부터
@LENGTH만큼 잘라낸 문자열을 반환한다.
Return 값 : @STRING1을 @LENGTH만큼 왼쪽으로 @STRING2로 채운 문자열
실 행 예 제: SELECT [dbo].[ufn_LPAD]('12345',10, '0')
-->RETURN '0000012345'
==========================================================================================
*/
CREATE FUNCTION [dbo].[ufn_LPad](
@STRING1 VARCHAR(4000), -- 변경할 데이터
@LENGTH INT, -- 변경된 문자 길이
@STRING2 VARCHAR(4000) -- LEFT PAD할 문자
)
RETURNS VARCHAR(4000)
AS
BEGIN
DECLARE @vIndex INT, @vResult VARCHAR(4000), @vAddTmp VARCHAR(4000)
IF ISNULL(@STRING1, '') ='' RETURN (NULL)
SET @vIndex = @LENGTH - LEN(@STRING1)
IF @vIndex =0
SET @vResult = @STRING1
ELSE IF @vIndex < 0
SET @vResult = SUBSTRING(@STRING1, 1, @LENGTH)
ELSE
SET @vResult = REPLICATE(@STRING2, @vIndex) + @STRING1
SET @vResult = RIGHT(@vResult, @LENGTH)
RETURN (@vResult)
END
'DataBase > MS-SQL' 카테고리의 다른 글
MS-SQL DB Spec 생성하는 프로시져 (0) | 2015.02.21 |
---|---|
주어진 문자열을 구분자 기준으로 테이블로 반환하는 함수 (0) | 2014.05.20 |