将0添加到字符串(特定长度)

时间:2013-09-04 13:46:27

标签: sql string loops prepend string-length

我有一个查询,我从数据库中提取了一个支票号码。返回值必须始终为9个字符。大多数检查号码只有6个字符,所以我想在字符串前加0,以确保它总是正好9个字符。由于支票号码的长度可能不同,因此每个支票号码的数量不同为0。什么是最有效的方法?

1 个答案:

答案 0 :(得分:0)

如果它们总是在6到9位之间,那么最简单(也可能是最好的)方法就是使用CASE。

SELECT CASE WHEN LEN(CHECK_NUM)= 6 THEN '000' WHEN LEN(CHECK_NUM) = 7 THEN '00' 
       WHEN 
       LEN(CHECK_NUM) = 8 THEN '0' ELSE '' END + CHECK_NUM 
FROM   TABLE 

修改
如果原始值是数字(int),请尝试以下方法:

SELECT CASE WHEN LEN(CHECK_NUM)= 6 THEN '000' WHEN LEN(CHECK_NUM) = 7 THEN '00' 
       WHEN 
       LEN(CHECK_NUM) = 8 THEN '0' ELSE '' END + CAST(CHECK_NUM AS VARCHAR(9)) 
FROM   TABLE1 

看看这个SQL Fiddle