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?

War es hilfreich?

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

eingeben Bild Beschreibung hier

Auch können Sie das folgende Skript

verwenden
CREATE TABLE [dbo].[tbl](
[col1] [varchar](50) NOT NULL,
[col2] [varchar](50) NOT NULL,
[ComputedColumn]  AS ((CONVERT([varchar],[col1],(0))+'-')+CONVERT([varchar],[col2],(0)))

)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top