Sql 添加编号+;varchar获取字符串连接
如何在SQL Server中添加5596+00003以获得559600003 我尝试了以下查询:Sql 添加编号+;varchar获取字符串连接,sql,sql-server,tsql,Sql,Sql Server,Tsql,如何在SQL Server中添加5596+00003以获得559600003 我尝试了以下查询: select 5596 + '00003' 但它给出的是5599,我想显示559600003。SQL Server尝试在计算的第一部分的数据类型中返回结果,在您的情况下,这是一个数字。它可以愉快地将计算的第二部分转换为一个数字,因此可以这样做 要获得所需的结果,必须将计算的第一部分转换为字符串,例如 select convert(varchar, 5596) + '00003' 注意:conve
select 5596 + '00003'
但它给出的是5599,我想显示559600003。SQL Server尝试在计算的第一部分的数据类型中返回结果,在您的情况下,这是一个数字。它可以愉快地将计算的第二部分转换为一个数字,因此可以这样做 要获得所需的结果,必须将计算的第一部分转换为字符串,例如
select convert(varchar, 5596) + '00003'
注意:convert(varchar,x)
使用默认长度30,这对于大多数数字可能已经足够了
CONCAT()
,与其他答案一样,这可能是一个更好的解决方案。您也可以使用CONCAT()
:
CONCAT()
不需要任何显式转换 您可以使用CAST
SELECT CAST(5596 AS varchar) + '00003'; -- return 559600003
我更喜欢这个解决方案。使用
cast
比convert
有什么好处?首先(对我来说)cast-ini比convert更容易阅读,其次是符合ANSI-SQL标准。这意味着许多数据库都可以使用cast函数。但若你们有一个日期类型转换,它比CAST更灵活,包含更多的选项(请看),这些信息足够有用,可以放在你们的答案中。提供额外的清晰说明为什么你的答案是一个好答案总是好的。
SELECT CAST(5596 AS varchar) + '00003'; -- return 559600003