2013-11-20 85 views
1

如果是一位數字,我想將零加到字母數字字符串中。sql中的零填充字母數字字符串

我有什麼是一樣的東西:

CV-1-1A
CV-1-32
CV-12-24
CV-1-2
CV-1-2A

,我想將它更改爲:

CV-01-01A
CV-01-32
CV-12-24
CV-01-02
CV-01-02A

回答

0

LPAD可用於零墊(或襯墊與任何字符,就此而言)的字符串。 但是,它不能在一個字符串內工作,所以需要一些技巧。 假設所有你的價值觀有a-b-c的格式,其中abc都是字符串最多3個字符,你可以使用SUBSTRING_INDEX到了打破串入部分,LPAD各部分單獨,並使用CONCAT,把它們放在一起回來:

SELECT CONCAT(SUBSTRING_INDEX(col, '-', 1), 
     '-', 
     LPAD(SUBSTRING_INDEX(SUBSTRING_INDEX(col, '-', 2), '-', -1), 2, '0'), 
     '-', 
     LPAD(SUBSTRING_INDEX(col, '-', -1), 3, '0')) 
FROM t; 

這是一個SQLFiddle與一個工作的例子。