巧用一條SQL語句實現其它進制到十進制轉換_Mssql數據庫教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:在SQL Server 2008中運用表值參數(TVP)
      問題:   當我們瀏覽SQL Server 2008的新特性的時候,我們發現一個很有趣的特性叫做表值參數(Table-Valued Parameter)。你能否給我們詳細介紹一下我們可以如何利用這個新特性嗎?   專家

      巧用一條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的底數改成相應的進制就可以了。

      本文只是一個例子,大家可以把它封裝成一個通用函數進行實用。

      大家在試的時候將里面相應的其它進制的數值換成自己的數據就可以了(有多處)。

      分享:SQL Server數據庫增強版備份體驗
      老鳥說事:Microsoft SQL Server數據庫增強版備份體驗 在歐洲,有一首流傳很廣的民諺: 因為丟失一根鐵釘,我們失去了一塊馬蹄鐵; 因為失去一塊馬蹄鐵,我們失去了一匹駿馬; 因為失去

      來源:模板無憂//所屬分類:Mssql數據庫教程/更新時間:2008-08-22
      相關Mssql數據庫教程