2013-06-03 137 views
6

我正在使用SQL Server 2008.我创建了一个名为unique_number的新数值列,我想通过连接其他两个数字列(sitenumber)来填充此列。 site列的范围为1-31,小于10的值在它们前面没有零。我想下面的SQL服务器:连接来自两个数字列的值

Number  Site unique_number 
1234567  2  12345672 
3456789  26  345678926 

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

+2

为什么你需要存储这个? 'Number'总是有7个数字(如果不知道如何知道'12345622'是'123456,22'还是'1234562,2') –

回答

8

你应该能够投两列作为varchar,然后将它们连接起来:

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

SQL Fiddle with Demo

如果你想更新你的表,那么你只用上面的在UPDATE语句:

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

Demo

+0

这很简单,谢谢。有关如何同时更新我的​​表的任何线索?当我使用更新语句错误发生时,由于选择语句 – user2448666

+0

@ user2448666您将只使用UPDATE语句,请参阅我的编辑演示 – Taryn

+0

我不得不将int更改为数字,但是这很好地工作。谢谢您的帮助。 – user2448666