转换uniqueidentifier类型的函数如何写

转换uniqueidentifier类型的函数怎么写?

输入参数是一个uniqueidentifier类型的数。比如:10666CB5-C58E-4A61-B21C-000137177A8A

现在我用了某种方式转换一下,它最终变成“E78B5L24

在C#中,我是这样实现的。

        public static string GenUniqueString(Guid? seed = null)
        {
            string readyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
            string rtn = "";


            var guid = (seed.HasValue ? seed.Value : Guid.NewGuid()).ToByteArray();
            var cc = BitConverter.ToUInt16(guid, 0);
            for (int i = 0; i < 8; i++)
            {
                rtn += readyStr[BitConverter.ToUInt16(guid, i * 2) % 35];
            }
           return rtn;
        }

请问,如果我用SQL的函数,应该怎么写呢?
------解决思路----------------------
根据我的经验,楼主的readyStr长度是36,楼主取模用了35应该是误用了。
declare @a uniqueidentifier = '10666CB5-C58E-4A61-B21C-000137177A8A'
declare @b binary(16)
declare @bb varbinary
declare @n int=0
declare @c varchar(8) = ''
declare @m nvarchar(36) = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
set @b = CONVERT(binary(16),@a)
while @n<8 
begin
set @bb = substring(@b,@n*2+2,1) + substring(@b,@n*2+1,1)
set @c=@c+SUBSTRING(@m, (CONVERT(int, substring(@b,@n*2+2,1) + substring(@b,@n*2+1,1) ) % 35) + 1, 1)
set @n=@n+1
end
select @c