在SQL SYBASE上填充数字

时间:2014-02-07 14:46:36

标签: sql padding sybase

我有一个像1,3065这样的数字字段,我需要这样做:000000000000000130

我的意思是16个整数和2个小数,没有逗号,在左侧添加0,如果需要,在右侧添加。

有没有办法用查询做到这一点?

2 个答案:

答案 0 :(得分:1)

我认为这适用于Sybase:

select right(replicate('0', 16) + cast(cast(field*100 as int) as varchar(255)), 16)

答案 1 :(得分:0)

尝试这种方式:

select REPLICATE('0',16-len(cast(cast((1.3065*100) as int) as varchar(16))))+cast(cast((1.3065*100) as int) as varchar(16))

以上结果选择:

0000000000000130

如果您需要近似值,则应使用FLOORCEILING功能,如下所示

declare @multiplier int

select @multiplier = 1000

select REPLICATE('0',16-len(cast((floor(1.3065*@multiplier)) as varchar(16))))+cast(floor(1.3065*@multiplier) as varchar(16))

以上结果选择:

0000000000001306

您可以通过更改@multiplier来更改近似值。例如,如果您需要来自第一个查询的结果,则应将@multiplier更改为100