环思产品论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2136|回复: 0
打印 上一主题 下一主题

将整数转换成数字字母编号

[复制链接]

131

主题

154

帖子

1161

积分

超级版主

机总

Rank: 8Rank: 8

积分
1161
QQ
跳转到指定楼层
楼主
发表于 2016-6-8 09:46:40 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
将整数转换成数字字母编号

  1. declare @tstarttime datetime=getdate();
  2.         PRINT dbo.fnpbCharCalc_NextChar('0123456789ABCDEFGHJKLMNPQRSTUWXY','0',8,4123523);
  3. print 'SQL CLR 函数 spend '+cast(datediff(millisecond,@tstarttime,getdate()) as nvarchar(20))+' ms';
  4. print '-----';
  5. select @tstarttime=getdate();
  6.         DECLARE @iIden INT = 4123523, @iLen INT = 8;
  7.         DECLARE @sChar NVARCHAR(200) = '0123456789ABCDEFGHJKLMNPQRSTUWXY';
  8.         DECLARE @iDivide INT=@iIden,@iRemainder INT=0;
  9.         DECLARE @nCharLen INT = LEN(@sChar);
  10.         DECLARE @rtnChar NVARCHAR(200)=0x;
  11.         IF @nCharLen=0 RETURN;
  12.         WHILE (1=1)
  13.         BEGIN
  14.           SELECT @iRemainder=@iDivide%@nCharLen;
  15.           SELECT @iDivide=floor(@iDivide*1.0/@nCharLen);
  16.           SELECT @rtnChar=SUBSTRING(@sChar,@iRemainder+1,1)+@rtnChar;
  17.           IF @iDivide=0 BREAK;
  18.         END;
  19.         PRINT LEFT(REPLACE(SPACE(@iLen),' ','0'), @iLen-LEN(@rtnChar))+@rtnChar;
  20. print 'SQL 函数 spend '+cast(datediff(millisecond,@tstarttime,getdate()) as nvarchar(20))+' ms';
  21. print '-----';
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|上海环思 ( 沪ICP备11022428号 )

GMT+8, 2024-11-9 04:16 , Processed in 0.086727 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表