/*
* FUNC 명: F_TO_CHAR
* FUNC 기능: 문자열 앞 또는 뒤에 해당 문자열로 채워넣음 총 길이에 따라
* 입 력 변수: @SrcStr VARCHAR(1000) -- 대상 문자열
@Char CHAR(1) -- 채워넣을 문자
@Len INT -- 총 길이 ( 양수일경우 오른쪽, 음수일 경우 왼쪽에 채워넣음)
@LenType INT -- 길이 계산 형태 (LEN 함수 사용 : 0, DATALENGTH 함수 사용 1)
* 반 환 값: VARCHAR(1000) : 소스 문자열에 채워넣은 문자 포함한 문자열
* 작성 일자: 2007-12-03
* 작 성 자: 안상욱
* 최종수정일:
* 최종수정자:
* 수정 이력:
* 실행 예제: SELECT F_TO_CHAR('12', '0', -30, 0)
* 비 고:
오라클의 TO_CHAR 의 일부 기능을 구현 해본것.
사실.. TO_CHAR라는 이름으로 하기에는.. 맞지 않는것 같다..
구현된 내용은 대상 문자열의 길이를 맞추는데 해당 길이에 모자랄 경우
특정 문자 즉 ' ', '0' ... 등 으로 채워넣는 형태의 함수이다.
구현 방식은 간단하다.
MS-SQL에서 제공하는 REPLICATE 함수를 사용하여
매개변수 중에서 총 길이 넣는 부분에 음수일 경우 좌측에 채워 넣고 양수일 경우
우측에 채워 넣도록 한다.
@LenType 길이 형태는 일반 문자 단위 길이를 나타낼 것인지 혹은 바이트 단위 길이로
처리할 것인지를 의미한다. 그냥 바이트 단위 길이로 셋팅하면 되지만..
그냥 옵션으로 두었다..
*/
CREATE FUNCTION F_TO_CHAR
(
@SrcStr VARCHAR(1000) , -- 대상 문자열
@Char CHAR(1) , -- 채워넣을 문자
@Len INT , -- 총 길이 ( 양수일경우 오른쪽, 음수일 경우 왼쪽에 채워넣음)
@LenType INT -- 길이 계산 형태 (LEN 함수 사용 : 0, DATALENGTH 함수 사용 1)
)
RETURNS VARCHAR(1000)
AS
BEGIN
DECLARE @l_RETURN_DATA VARCHAR(1000)
SET @l_RETURN_DATA = ''
IF (@Len > 0) -- 오른쪽에 채워넣음
BEGIN
SET @l_RETURN_DATA = @SrcStr + REPLICATE(@Char, ABS(@Len) - CASE @LenType WHEN 0 THEN LEN(@SrcStr) ELSE DATALENGTH(@SrcStr) END);
END
ELSE -- 왼쪽에 채워넣음
BEGIN
SET @l_RETURN_DATA = REPLICATE(@Char, ABS(@Len) - CASE @LenType WHEN 0 THEN LEN(@SrcStr) ELSE DATALENGTH(@SrcStr) END) + @SrcStr;
END
RETURN @l_RETURN_DATA;
END
'DataBase > MS-SQL' 카테고리의 다른 글
MS-SQL .. ORACLE 의 TRUNC 따라 하기.. (0) | 2007.12.04 |
---|---|
MS-SQL에서 난수 만들기.. (0) | 2007.10.18 |
[MSSQL] 날짜 형식 변환 (0) | 2007.09.04 |
MS-SQL에서 Stored Procedure 내용 검색... (0) | 2007.08.24 |