Berechnete Spalte sollte Zeichenfolge führen
-
20-09-2019 - |
Frage
Hier ist ein Snap meiner Datenbank.
Sowohl col1 und col2 werden als int deklariert.
Meine ComputedColumn fügt sich aktuell in den Spalten 1 und 2, wie folgt ...
col1 col2 ComputedColumn
1 2 3
4 1 5
Statt dessen, meine ComputedColumn sollten die Spalten 1 und 2 verbinden (includimg die '-' Zeichen in der Mitte) wie folgt ...
col1 col2 ComputedColumn
1 2 1-2
4 1 4-1
Also, was ist die korrekte Syntax?
Lösung
Sie definieren wahrscheinlich die berechnete Spalte als col1+col2
. Versuchen Sie CAST(col1 AS NVARCHAR(MAX))+'-'+CAST(col2 AS NVARCHAR(MAX))
statt.
Oder wenn Sie es bevorzugen, Sie NVARCHAR(MAX)
mit NVARCHAR(10)
oder einer anderen Länge Ihrer Wahl ersetzen können.
Andere Tipps
create table TableName
(
col1 int,
col2 int,
ComputedColumn as Convert(varchar, col1) + '-' + Convert(varchar, col2)
)
Beachten Sie, dass, wenn entweder Wert null
dann das Ergebnis ComputedColumn
auch null
sein wird (unter Verwendung der Standardsortierung und Einstellungen)
einfach:
SELECT ComputedColumn = convert(varchar, col1) + '-' + convert(varchar, col2)
FROM Table
SELECT col1, col2, (col1 + '-' + col2) as ComputedColumn
„+“ ist sowohl Addition und die Verknüpfungszeichen. Sie könnten explizit konvertieren, aber in diesem Fall, einschließlich der ‚-‘. In der Mitte sollte eine implizite Konvertierung führen
zunächst erstellen Tabelle im Design-Modus
hinzufügen 2 Spalte als col1 und col2
fügen Sie eine weitere Spalte computedcolumn und legen berechnete Spalte Eigenschaft
Auch können Sie das folgende Skript
verwendenCREATE TABLE [dbo].[tbl](
[col1] [varchar](50) NOT NULL,
[col2] [varchar](50) NOT NULL,
[ComputedColumn] AS ((CONVERT([varchar],[col1],(0))+'-')+CONVERT([varchar],[col2],(0)))
)