DataBase/MS-SQL / / 2007. 12. 4. 14:07

MS-SQL .. ORACLE 의 TRUNC 따라 하기..

반응형

/*
     오라클의 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
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유