SQL Server 对长度不足的字符串右侧补0

4,706 阅读1分钟

        由于在使用过程中,发现有这个需求,然后了解了一下 SQL Server 的操作,故在这里做一个记录。

我们用到了 SQL Server 中的 RIGHT() 函数,RIGHT() 的函数表达式为:

RIGHT(character_expression,integer_expression)

其中,character_expression 表示字符串表达式,integer_expression 表示返回的指定长度。在这个我们以 5 为长度限制,进行举例说明。

其中原始数据如下:


接下来我们使用 RIGHT() 函数,对 sp_code 这个字段进行格式处理:

第一种写法:

RIGHT('00000' + sp_code, 5)


第二种写法:

RIGHT('00000' + CONVERT(VARCHAR, sp_code), 5)

说明:CONVERT() 为 SQL Server 中的把日期转换为新数据类型的通用函数。这里我们使用

CONVERT(VARCHAR, sp_code)

的语法,是将 sp_code 转为字符类型。


第三种写法:

RIGHT('00000' + LTRIM(RTRIM(sp_code)), 5)

说明:LTRIM() 和 RTRIM() 是 SQL Server 中去除数据中的空格函数


第四种写法:

RIGHT('00000' + CASE(sp_code AS varchar), 5)



第五种写法:

RIGHT(replicate('0', 5) + sp_code, 5)

说明:REPLICATE() 为 SQL Server 中以指定的次数重复字符表达式的函数。



第六种写法:

RIGHT(100000 + sp_code, 5)



总结,写法有很多种,这里只列举其中几种。