연구개발/CLR
CLR - 10진수를 다른 진법의 수로 표현
알 수 없는 사용자
2009. 6. 22. 20:52
김종열
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)