1

如果它是一位数字,我想在字母数字字符串中添加零。

我得到的是这样的:

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

4

1 回答 1

0

LPAD可用于零填充(或用任何字符填充)字符串。但是,它不能在字符串中工作,因此需要一些技巧。假设您的所有值都具有a-b-cwhere的格式ab并且c是最多 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 。

于 2013-11-20T20:41:52.693 回答