7

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

Number      Site   unique_number
1234567      2       12345672
3456789      26      345678926

使用+我已经能够得到unique_number两列的总和,但我希望发生串联,而不是求和。我尝试过使用 cast as 的其他建议varchar,但 select 语句继续给我错误。有没有合理的方法来做到这一点?

4

1 回答 1

11

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

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

请参阅带有演示的 SQL Fiddle

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

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

演示

于 2013-06-03T16:34:59.707 回答