zoukankan      html  css  js  c++  java
  • 巧用一条SQL语句实现其它进制到十进制转换

    巧用一条SQL语句实现其它进制到十进制转换

    2007-09-25 11:10作者:han出处:论坛整理责任编辑:幽灵

      巧用一条SQL语句实现其它进制到十进制转换,具体实现方法如下:

      -----二进制转换十进制-----------------

    以下是引用片段:
      select sum(data1)
      from (select substr('1101', rownum, 1) * power
      (2, length('1101') - rownum) data1
      from dual
      connect by rownum <= length('1101'))

      -----八进制转换十进制-----------------

    以下是引用片段:
      select sum(data1)
      from (select substr('1101', rownum, 1) * power
      (8, length('1101') - rownum) data1
      from dual
      connect by rownum <= length('1101'))

      -----十六进制转换十进制-----------------

    以下是引用片段:
      select sum(data1)
      from (select (CASE upper(substr('2D', rownum, 1))
      WHEN 'A' THEN '10'
      WHEN 'B' THEN '11'
      WHEN 'C' THEN '12'
      WHEN 'D' THEN '13'
      WHEN 'E' THEN '14'
      WHEN 'F' THEN '15'
      ELSE substr('2D', rownum, 1)
      END) * power(16, length('2D') - rownum) data1
      from dual
      connect by rownum <= length('2D'))

      注释:

      对其它进制可以根据例子将power的底数改成相应的进制就可以了。

      本文只是一个例子,大家可以把它封装成一个通用函数进行实用。

      大家在试的时候将里面相应的其它进制的数值换成自己的数据就可以了(有多处)。

    http://dev.yesky.com/msdn/28/7574028.shtml
     

  • 相关阅读:
    YTU 2802: 判断字符串是否为回文
    YTU 2392: 求各位数字之和
    YTU 2391: 求素数
    HDU 2064:汉诺塔III
    HDU 2187:悼念512汶川大地震遇难同胞——老人是真饿了
    HDU 2036:改革春风吹满地
    HDU 1081:To The Max
    HDU 1257:最少拦截系统
    YTU 2425: C语言习题 输出月份
    YTU 2420: C语言习题 不等长字符串排序
  • 原文地址:https://www.cnblogs.com/andy_tigger/p/1911794.html
Copyright © 2011-2022 走看看