/*
오라클의 TRUNC 따라하기~
*/
DECLARE @SrcNum NUMERIC(32,10),
@CutCnt INT
DECLARE @l_RETURN VARCHAR(500),
@l_SRC VARCHAR(500)
SET @SrcNum = ROUND(@SrcNum, @CutCnt, 1)
SET @l_SRC = CAST(@SrcNum AS VARCHAR(500))
IF (CHARINDEX('.', @l_SRC) > 0)
BEGIN
WHILE (1=1)
BEGIN
IF (RIGHT(@l_SRC, 1) = '0')
BEGIN
SET @l_SRC = SUBSTRING(@l_SRC, 1, LEN(@l_SRC) - 1)
END
ELSE IF (RIGHT(@l_SRC, 1) = '.')
BEGIN
SET @l_SRC = SUBSTRING(@l_SRC, 1, LEN(@l_SRC) - 1)
BREAK;
END
ELSE
BEGIN
BREAK;
END
END
END
SET @l_RETURN = @l_SRC
PRINT @l_RETURN
1. 타겟 숫자와 자를 값을 입력한다.
2. ROUND를 사용하여 자를 위치까지 0으로 만든다.
3. 스트링으로 변환시켜 뒷 쪽에 0 값을 가지는 것들을 삭제한다.
삭제시 소숫점 이하 없을 경우에는 소숫점을 삭제하며
소숫점이하 숫자값이 있을 경우에는 해당 숫자 이후의 0을 삭제한다.
ㅋ.. 필요에 의해 만들어본 것....
많은 테스트를 거치지 않아서.. 어느정도 성능을 가질지 모르겠지만..
필요에 따라 변경하여 사용할 수 있을 것이다.. ^^
'DataBase > MS-SQL' 카테고리의 다른 글
MS-SQL 특정 문자로 채워넣기.. (0) | 2007.12.04 |
---|---|
MS-SQL에서 난수 만들기.. (0) | 2007.10.18 |
[MSSQL] 날짜 형식 변환 (0) | 2007.09.04 |
MS-SQL에서 Stored Procedure 내용 검색... (0) | 2007.08.24 |