본문 바로가기

연구개발/CLR

CLR - 10진수를 다른 진법의 수로 표현

728x90
반응형

김종열

MS SQL Server MVP

엔트리브 소프트


다른 커뮤너티에서 10진수를 다른 진법의 수로 변환하는가에 대한 질문이 있더군요.
해서 간단한 FUNCTION을 하나 만들어봤습니다.

다음은 UDF_NOTATION.CS의 파일입니다.

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;

public partial class UserDefinedFunctions
{
    [Microsoft.SqlServer.Server.SqlFunction]
    public static SqlString UDF_NOTATION(int oNum, int nNum)
    {
        try
        {
            string _not = Convert.ToString(oNum, nNum);
            return (SqlString)_not;

        }
        catch
        {
            return null;
        }       
    }
};




인자가 수가 먼저 들어온다는 점을 감안하셔야겠죠 ^^,
즉 16진수의 경우는 문자가 포함된 숫자임에도 이는 다시 10진수로 못 나타낸다는 이야기겠죠.

배포를 하시고 나시면 다음과 같은 쿼리로 확인을 해보십시오.


SELECT DBO.UDF_NOTATION(255, 16)


-----
ff
(1 row(s) affected)

728x90
반응형