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