SQL实现16进制到10进制的转换

原创 2015年07月07日 10:38:11

SQL 实现对 16进制 到10进制的转换

CREATE FUNCTION dbo. f_hex_dec(@s varchar( 16))
RETURNS bigint
AS
BEGIN
  DECLARE @i int ,@result bigint
  SELECT @i=0 ,@result= 0,@s =RTRIM( LTRIM(UPPER (REVERSE( @s))))
  WHILE @i<LEN (@s)
  BEGIN
    IF SUBSTRING (@s, @i+1 ,1) not between '0' and '9' and SUBSTRING(@s ,@i+ 1,1 ) not between 'A' and 'F'
    BEGIN
      SELECT @result =0
      break
    END
    SELECT @result=@result +(CHARINDEX( SUBSTRING(@s ,@i+ 1,1 ),'0123456789ABCDEF')- 1)*POWER (16, @i),@i =@i+ 1
  END
  RETURN @result
END
GO

select distinct (dbo. f_hex_dec(substring (ExETCTermCode, 8,5 ))) as ExETCTermCode , ExRoadID,ExStationID ,ExLaneID from tb_LaneExList201406 where ExETCTermCode <>'0' order by ExRoadID ,ExStationID, ExLaneID


函数解释: RTRIM 、LTRIM 去除字符串中的左右空白; REVERSE 翻转字符串;CHARINDEX(S1,S2,index)寻找并返回S1在S2中的位置,index 为开始寻找位置,不填,负数或0均默认从S2开头位置寻找


版权声明:本文为博主原创文章,未经博主允许不得转载。

MS SQL Server10进制和16进制之间的互相转换

MS SQL Server10进制和16进制之间的互相转换
  • misterliwei
  • misterliwei
  • 2015年03月09日 18:23
  • 10971

Sql server实现十六进制和十进制的转换

写着玩玩-- 十六进制转十进制Create    function hextoint(@h varchar(8))returns bigint begin-- select dbo.hextoint(...
  • szliszt
  • szliszt
  • 2008年02月22日 01:06
  • 1079

用sql server进行10进制和16进制的转换 hextoint inttohex

create    function hextoint(@h varchar(8))returns bigint begindeclare @r bigint  set @r=0declare @i ...
  • szliszt
  • szliszt
  • 2007年09月14日 00:21
  • 1098

在sql里面将16进制字符转化为10进制整数

考虑到可重用性我们考虑以用户函数的形式实现,代码如下:CREATE function hexnum(@hexstr varchar(10))returns bigintasbeginif left(@...
  • killergo
  • killergo
  • 2005年06月03日 04:44
  • 1826

SQL脚本函数 16进制转换为10进制

  • 2010年11月25日 20:16
  • 605B
  • 下载

sql server 十六进制转十进制

--十六进制转十进制create     function hextoint(@h varchar(8))returns bigint asbegin declare @r bigint  set @...
  • itlhb
  • itlhb
  • 2009年02月05日 10:44
  • 874

SQL实现16进制到10进制的转换

SQL 实现对 16进制 到10进制的转换 CREATE FUNCTION dbo. f_hex_dec(@s varchar( 16)) RETURNS bigint AS BEGIN DEC...
  • nizihabi
  • nizihabi
  • 2015年07月07日 10:38
  • 782

sql server里将十六进制转换成十进制

在网上找了很多,总是不知道怎么用,于是自己写了一个: declare @strHex char(5), @len int, @intOut int, @i int, @charint intset @...
  • Androd
  • Androd
  • 2010年04月26日 22:20
  • 559

10进制与16进制互相转换

一般情况下,我们在对java中10进制与16进制互相转换的时候,通常是采用下列方法(以long类型为例): 10进制化为16进制:String Long.toHexString(Long v); ...
  • wwwxxdddx
  • wwwxxdddx
  • 2013年10月16日 18:50
  • 1434

十进制转十六进制的C实现

以下是代码实现: void dec16hex(int num,char *hex) { char hextable[] = "0123456789ABCDEF"; int i = 0; in...
  • MrQkeil
  • MrQkeil
  • 2017年10月03日 21:14
  • 338
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL实现16进制到10进制的转换
举报原因:
原因补充:

(最多只允许输入30个字)