2013-06-03 132 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