SQL Server:连接两个数字列的值

时间:2013-06-03 16:29:59

标签: sql-server-2008

我正在使用SQL Server 2008.我创建了一个名为unique_number的新数字列,我希望通过连接另外两个名为sitenumber的数字列来填充此列。 site列的范围为1-31,小于10的值在它们前面没有零。我想要以下

Number      Site   unique_number
1234567      2       12345672
3456789      26      345678926

使用+我能够将unique_number作为两列的总和,但我希望连接发生,而不是求和。我已尝试使用强制转换为varchar的其他建议,但select语句继续给我错误。有合理的方法吗?

1 个答案:

答案 0 :(得分:10)

您应该能够将两个列都转换为varchar,然后将它们连接起来:

select number, site, 
  cast(number as varchar(50)) 
  + cast(site as varchar(2)) unique_number
from yt;

请参阅SQL Fiddle with Demo

如果您想更新表格,那么您只需在更新声明中使用上述内容:

update yt
set unique_number = cast(cast(number as varchar(50)) 
                          + cast(site as varchar(2)) as int);

请参阅Demo