月神的咖啡館

關於部落格
  • 20981

    累積人氣

  • 3

    今日人氣

    0

    訂閱人氣

SQL 字串補0

我們可以利用兩個SQL函數來實現:
  1. REPLICATE ( character_expression ,integer_expression ) :重複填
    入指定值
    character_expression:欲重複(填補)的字串值(例:0或其他符號)
    integer_expression:欲重複的次數
  2. LEN(string_expression ):傳回指定字串運算式的字元數(字串長度),但尾端空白不算

實做步驟(以填補「0」為例):

        1.用指定的字串長度減掉現有字串長度,就可以得出「0」應該重複(填補)幾次
                假設若要固定長度為4位,不足4位數則會在前端補「0」--->0002
                則「0」應該重複幾次=4-LEN(string_expression )
           
        2.指定重複次數:
                將步驟1所求出重複次數4-LEN(string_expression )代入REPLICATE函數中
                將「0」代入REPLICATE函數中
    則:      REPLICATE ( character_expression ,integer_expression
      --->REPLICATE ( '0' ,4-LEN(string_expression )
              
                如果、我們的原始字串長度 LEN(string_expression )=1 的話 ,
                REPLICATE 會成 --->REPLICATE ( '0' ,3 )
                                                --->得出結果為 '000'

        3.將結果加上原始字串就是填補後的結果了: 
                REPLICATE ( '0' ,3 ) +string_expression



範例:
        假設我現有一筆資料,該筆資料工令欄位的值為 9703-1234-000-xxxx,第三個「-」
        (第15個字元以後)後面的字元 (xxxx)長度是變動的,最多為四位數,若我要取出第
        15個字元以後的四位數,不足四位填補「0」的話,如以下兩例我會取出「52」與
        「102」變成「0052」與「0102」:
                「9703-AAAA-000-52 」 --->「52」 --->「0052
                「9703-AAAA-000-102 」--->「102 」--->「0102
             
             語法如下:
                REPLICATE('0',4-LEN(substring(工令,15,4)))+substring(工令,15,4)




相簿設定
標籤設定
相簿狀態