1

我有类似这样的查询:

DECLARE @value decimal(8,0) = 1

SELECT (CAST @value AS varchar(8)) 

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

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

4

5 回答 5

2

试试这个

SELECT RIGHT('00000000' + CAST (@value AS varchar(8)),8)
于 2012-11-28T09:07:08.313 回答
2

这应该有效:

DECLARE @value decimal(8,0) = 1

SELECT RIGHT('0000000' + CAST(@value AS varchar(8)), 8)
于 2012-11-28T09:09:16.280 回答
2

试试这个:

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

SQL Fiddle 演示

于 2012-11-28T09:09:32.887 回答
1

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

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

现场演示

于 2012-11-28T09:09:38.080 回答
1

试试这个:

DECLARE @value decimal(8,0) = 1
SELECT REPLICATE('0',8-len(@value))+CAST(@value AS varchar(8))
于 2012-11-28T09:10:39.470 回答