2013-06-03 14 views
6

Używam programu SQL Server 2008. Zrobiłem nową kolumnę numeryczną o nazwie unique_number i chciałbym zapełnić tę kolumnę przez połączenie dwóch innych kolumn numerycznych o nazwie site i number. Kolumna site waha się od 1 do 31, a wartości mniejsze niż 10 nie mają przed sobą zera. Chciałbym poSerwer SQL: łączenie wartości z dwóch kolumn numerycznych

Number  Site unique_number 
1234567  2  12345672 
3456789  26  345678926 

Używanie + udało mi się dostać unique_number być sumą dwóch kolumnach, ale chcę powiązanie występuje, a nie podsumowanie. Próbowałem innych sugestii przy użyciu rzutowania jako varchar, ale instrukcja select nadal daje mi błędy. Czy istnieje rozsądny sposób na zrobienie tego?

+2

Dlaczego musisz to przechować? Czy 'Number' ma zawsze 7 cyfr (a jeśli nie, to czy wiesz, że' 12345622' to '123456,22' lub' 1234562,2') –

Odpowiedz

8

Powinieneś móc oddawać zarówno kolumn jak varchar a następnie złączyć je:

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

Zobacz SQL Fiddle with Demo

Jeśli chcesz zaktualizować tabelę, wtedy po prostu użyć powyższego w instrukcji aktualizacji:

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

Zobacz Demo

+0

To było łatwe, dzięki. Jakąkolwiek wskazówkę, jak zaktualizować mój stół w tym samym czasie? Kiedy korzystam z instrukcji aktualizacji, pojawiają się błędy z powodu instrukcji select – user2448666

+0

@ user2448666 po prostu użyjesz instrukcji UPDATE, zobacz moją edycję z demo – Taryn

+0

Musiałem zmienić int na numeryczny, ale to działało idealnie. Dzięki za pomoc. – user2448666

Powiązane problemy