MySQL 自動補零

Home / MySQL / MySQL 自動補零
 數字 文字
 畫面  8                 8
 調整  8  0000000008

數字在轉換成文字後,會如上表中的畫面行所示,也是只看到一個8,但實際上在8的左手邊,(注意:有時因資料轉換不同,而在右手邊)

其實有n個空白存在,我們把每個空白轉換成0,就如同調整行所顯示的一般。

 


 

應用此理論,我們在SQL也可以做此動作。

 

SELECT seqn FROM Table

 seqn
 2
 5
 6
 7

 


 

 

SELECT REPLACE(STR(seqn),’ ‘,”) FROM Table –SQLServer

SELECT REPLICATE(‘0’,10-LEN(seqn)) + RTRIM(CAST(seqn AS CHAR)) FROM Table –SQLServer

SELECT LPAD(LTRIM(CAST(seqn AS CHAR)),10,’0′) FROM Table –MySQL、Oracle

SELECT REPEAT(‘0’,10-LEN(seqn)) || RTRIM(CAST(seqn AS CHAR)) FROM Table –DB2

 seqn
 0000000002
 0000000005
 0000000006
 0000000007

 


 

 

SELECT ‘A’ + Replace(Str(seqn),’ ‘,”) FROM Table –SQLServer

SELECT ‘A’ + REPLICATE(‘0’,10-LEN(seqn)) + RTRIM(CAST(seqn AS CHAR))FROM Table –SQLServer

SELECT ‘A’ . LPAD(LTRIM(CAST(seqn AS CHAR)),10,’0′) FROM Table –MySQL、Oracle

SELECT ‘A’ || REPEAT(‘0’,10-LEN(seqn)) || RTRIM(CAST(seqn AS CHAR)) FROM Table –DB2

 seqn
 A0000000002
 A0000000005
 A0000000006
 A0000000007

 

 

 


 

 

補充:

Str:轉換為文字型態,並補空白至字串左方,僅供SQLServer。

Cast 函數:SQL資料類型的型態轉換。

Replace函數:字串置換。

Repeat:重覆字串函數,僅供DB2、MySQL、Postgre SQL。

Replicate:重覆字串函數,僅供SQLServer。

LPAD:重覆填入文字至指定長度為止,僅供MySQL、Oracle、Postgre SQL。

Len:取得字串長度,僅供SQLServer。

Length:取得字串長度,僅供DB2、MySQL、Oracle、Postgre SQL。

494 全部 2 今日

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

*