2013-06-03 8 views
6

SQL Server 2008を使用しています。unique_numberという新しい数値列を作成しました。この列には、sitenumberという2つの数値列を連結して入力します。 siteの列の範囲は1〜31で、値が10より小さい場合は、その前にゼロがありません。私は、私は2つの列の合計になるようにunique_numberを取得することができた+を使用して、次のSQLサーバー:2つの数値列の値を連結する

Number  Site unique_number 
1234567  2  12345672 
3456789  26  345678926 

たいのですが、私はないの加算、連結が発生します。私は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

関連する問題