在 SQL SYBASE 上填充数字



我有一个像1,3065这样的数字字段,我需要它变成这样:000000000000000130 .

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

有什么方法可以通过查询做到这一点吗?

我认为这将在Sybase中工作:

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

试试这个方式:

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

最新更新