我有一個像1,3065
這樣的數字字段,我需要這樣做:000000000000000130
。在SQL上填充數字SYBASE
我的意思是16個整數和2位小數,沒有逗號,在左邊加上0,如果需要的話,在右邊加上0。
有沒有辦法做到這一點與查詢?
我有一個像1,3065
這樣的數字字段,我需要這樣做:000000000000000130
。在SQL上填充數字SYBASE
我的意思是16個整數和2位小數,沒有逗號,在左邊加上0,如果需要的話,在右邊加上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
如果你想逼近你應該使用FLOOR
或CEILING
功能如下
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
。
如果我需要一個近似值而不是截斷值? – abierto
@abierto。 。 。最簡單的方法是用'cast(field * 100 + 0.5 as int)'替換上面'cast(field * 100 as int)'。你也可以使用'round()'函數。 –