如何在转换为varchar时格式化数值?

时间:2012-11-28 09:04:31

标签: sql sql-server-2008

我的查询类似于:

DECLARE @value decimal(8,0) = 1

SELECT (CAST @value AS varchar(8)) 

如何使用前导零(00000001, 00000023, 00000623等)格式化输出? 我怎么能这样做?

这是.Net或Java中的简单任务,但我必须在视图中进行。

5 个答案:

答案 0 :(得分:2)

试试这个

SELECT RIGHT('00000000' + CAST (@value AS varchar(8)),8)

答案 1 :(得分:2)

这应该有效:

DECLARE @value decimal(8,0) = 1

SELECT RIGHT('0000000' + CAST(@value AS varchar(8)), 8)

答案 2 :(得分:2)

试试这个:

declare @value varchar(8)='623';
Select ltrim(right(replicate(0,8) + CAST (@value AS varchar(8)),8)) 

SQL Fiddle demo

答案 3 :(得分:1)

您可以使用REPLICATERIGHT执行此操作,如下所示:

SELECT RIGHT(REPLICATE('0', 8) + CAST(@valueAS VARCHAR(8)), 8)

Live Demo

答案 4 :(得分:1)

试试这个:

DECLARE @value decimal(8,0) = 1
SELECT REPLICATE('0',8-len(@value))+CAST(@value AS varchar(8))