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

use*_*666 6 sql-server-2008

我正在使用SQL Server 2008.我已经调用了一个新的数字列unique_number,我希望通过连接两个名为site和的其他数字列来填充此列number.所述site柱从1-31的范围内,其值小于10没有在他们面前一个零.我想要以下内容

Number      Site   unique_number
1234567      2       12345672
3456789      26      345678926
Run Code Online (Sandbox Code Playgroud)

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

Tar*_*ryn 10

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

select number, site, 
  cast(number as varchar(50)) 
  + cast(site as varchar(2)) unique_number
from yt;
Run Code Online (Sandbox Code Playgroud)

请参阅SQL Fiddle with Demo

如果要更新表,那么您只需在更新语句中使用上述内容:

update yt
set unique_number = cast(cast(number as varchar(50)) 
                          + cast(site as varchar(2)) as int);
Run Code Online (Sandbox Code Playgroud)

演示