2017-05-11 8 views
0

Kurze Frage erstellen - Ich möchte eine andere Spalte in SQL Server wie erstellen:eine neue Spalte basierend auf einer anderen Spalte in SQL Server

Original-Tabelle

Type   Amount  LocNum 
Chocolate 15   WC-10202-01 
Banana  10   WC-35209-22 
Vanilla  5   WC-15815-15 

Ideal Tabelle

Type   Amount  LocNum   LocNum2 
Chocolate 15   WC-10202-01  WC-10202 
Banana  10   WC-35209-22  WC-35209 
Vanilla  5   WC-15815-15  WC-15815 
+0

Speziell möchten Sie eine andere Spalte aus dem Wert Ihrer Tabelle erstellen? oder Sie möchten stattdessen eine neue Spalte erstellen. –

+0

Wie bereits erwähnt, verwenden Sie eine berechnete Spalte. Und ich muss fragen warum! Wenn die letzten 3 Zeichen nicht "gewünscht" sind, warum speichern Sie sie? Wenn Sie sie speichern müssen, haben sie eine Bedeutung, die Sie übersehen? Machen Sie auch eine Annahme über Länge und Format der in LocNum möglichen Werte? – SMor

Antwort

0

So einfach ist das:

ALTER TABLE table_name 
ADD column_name column-definition; 
+0

Also sollte ich die Tatsache, dass ich neu in SQL als Ganzes bin, durch die Spaltendefinition vorangestellt werden - wie würde ich definieren, ich möchte das locnum behalten, aber die letzten 3 Zeichen ignorieren? – S31

+0

Ich vermisse Ihre Frage nach dem Hinzufügen einer Spalte in einer Tabelle. Die restlichen Antworten summieren sich ziemlich gut. – Diaman

0

können Sie verwenden, ersetzen und charindex dies wie unten zu tun:

select [Type], [Amount], LocNum, LocNum2 = replace(LocNum,right(LocNum, charindex('-',LocNum,charindex('-',LocNum,1))),'') 
    from yourtable 
1

Wenn Sie wirklich brauchen, können Sie eine computed column erstellen.

ALTER TABLE yourTable ADD LocNum2 AS (<your calculation here>); 

Allerdings, wenn Sie auf diese Berechnung aus irgendeinem Grund Index benötigen, würde ich vorschlagen, nur um es als Teil Ihrer select Ausgabe hinzufügen.

Verwandte Themen