添加零并使用单个查询将varchar转换为flot

时间:2013-09-02 13:32:42

标签: sql sql-server

我有数据需要在其中添加前导零。但问题是数据类型是浮点数。所以每当我添加零时,它会自动省略它们。我试图将前导零添加到它然后尝试将其转换为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

1 个答案:

答案 0 :(得分: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个数字线)