0

我有需要在其中添加前导零的数据。但问题是数据类型是浮点数。因此,每当我添加零时,它都会自动省略它们。我尝试在其中添加前导零,然后尝试将其转换为 varchar(50)。但它给出了一个错误:

消息 102,级别 15,状态 1,第 1 行 'wallet_sys' 附近的语法不正确。

我使用了以下查询:

select  (convert (varchar(50), ('0' + wallet_sys wallet_sys)))  from NewSysData1

我做错了什么?

PS:部分样本数据如下:17187383、87339833、93838793

我希望这些是:017187383、087339833、093838793

4

1 回答 1

4

你必须在它变成一个字符串之后添加零,而不是之前:

select  '0' + convert (varchar(50), (wallet_sys)) as wallet_sys  from NewSysData1

通常,大多数人希望转换为具有固定宽度的结果,并使用适当数量的前导零来实现这一点。为此,需要做更多的工作:

select RIGHT('0000000000' + convert (varchar(50), (wallet_sys wallet_sys)),10) as wallet_sys 
from NewSysData1

将产生 10 位数字,并根据需要使用尽可能多的前导零(字符串文字中的零数应该〜等于所需数字的数量,这也是第一行右手端提供的 10)

于 2013-09-02T13:34:44.937 回答