首页 > 解决方案 > SQL删除前导零

问题描述

我无法从列中删除前导零。在这种情况下,我的 SQL 查询是

Select distinct 


ltrim(rtrim([FGQSHO])) as QTY,
ltrim(rtrim([QULOTN])) as Batch,
ltrim(rtrim([QUQTSH])) as BatchQty

FROM serh

left join boll on serh.HVSERN = boll.QUSERN
left join bold on boll.QUBOL# = bold.FGBOL# and boll.QUENT# = bold.FGENT#
left join bolh on bold.FGBOL# = bolh.FEBOL#
left join ocri on bold.fgord# = ocri.ddord# and bold.fgitem = ocri.dditm#

where FGBOL# = '761221'

结果是

   QTY           Batch          BatchQty
30.00000    4615J0003  3Q20     14.00000
30.00000    4615J0005  4Q20     16.00000

我正在寻找这个结果。

QTY           Batch            BatchQty
30         4615J0003  3Q20        14
30         4615J0005  4Q20        16

标签: sql

解决方案


使用floor()功能:

floor(ltrim(rtrim([FGQSHO]))) as QTY,

为什么首先将这些值存储为字符串?您应该将数字存储为数字。如果它们是数字,则不应在它们上使用字符串函数。


推荐阅读