Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So fügen Sie eine berechnete Spalte in einer SQL Server-Tabelle hinzu – SQL Server / T-SQL-Tutorial Teil 47

Szenario:

Sie arbeiten als SQL Server Entwickler für eine der Anwaltskanzleien. Sie haben eine dbo.Customer-Tabelle mit der folgenden Definition erstellt ,Telefonnummer ZEICHEN(9) ,DOB DATUM ,Geschlecht ZEICHEN(1) )
Sie benötigen einen vollständigen Namen, der aus Vorname und Nachname bestehen sollte. Sie möchten die doppelten Daten nicht in der Tabelle speichern, indem Sie eine neue Spalte für den vollständigen Namen hinzufügen. Welche Optionen haben Sie?

Auch abhängig vom Alter möchten wir eine neue Spalte mit dem Namen IsSenior hinzufügen und diese mit 1 markieren, wenn über 65, sonst 0.

Lösung:

SQL Server stellt uns Computed Column zur Verfügung, d. h. eine virtuelle Spalte, in der keine Daten gespeichert werden, es sei denn, sie sind als Persisted gekennzeichnet. Das bedeutet, dass wir eine berechnete Spalte (Vollständiger Name) erstellen können, die die Daten Vorname und Nachname verwendet. Durch die Erstellung einer berechneten Spalte müssen wir keine doppelten Daten für die Spalte „vollständiger Name“ speichern.

Lassen Sie uns fortfahren und abhängig von unseren Kriterien berechnete Spalten „vollständiger Name“ und „IsSenior“ erstellen.

CREATE TABLE Kunde ( CustomerId INT Identität(1, 1) ,Vorname VARCHAR(50) ,Nachname VARCHAR(50) ,Alter SMALLINT ,Telefonnummer CHAR(9) ,DOB DATE ,Geschlecht CHAR(1) ,FullName AS FirstName + ' ' + LastName ,IsSenior AS CASE WHEN Age> 65 THEN 1 ELSE 0 END )
 Wir haben den Vornamen und den Nachnamen für den vollständigen Namen verkettet und die Fallerklärung für die Spalte „IsSenior Computer“ geschrieben. Fangen wir an und fügen ein paar Datensätze ein.

 insert into dbo.Customer(FirstName,LastName,Age) Values('Aamir','Shahzad',66), ('Raza', 'M',44)

Ich habe bemerkt, dass ich nichts für die Spalten FullName und IsSenior eingefügt habe. Die Werte für diese Spalten werden berechnet, wenn wir die Daten auswählen.

So fügen Sie berechnete Spalten in einer SQL Server-Tabelle hinzu – T-SQL-Tutorial

If Sie müssen berechnete Spalte zur Ausgangstabelle hinzufügen Sie können die folgende Syntax verwenden

Tabellenschemaname ändern.Tabellenname
Spaltenname AS-Logik hinzufügen (z. B. Vorname +''+Nachname)

Nehmen wir an, wenn wir möchten Computerspalte FullName zur Tabelle Customer hinzufügen, wir können das folgende Skript verwenden.

Tabelle ändern dbo.Customer FullName AS FirstName+' '+LastName
hinzufügen
 
Berechnete Spalte aus SQL Server-Tabelle löschen:
Die Syntax zum Löschen von berechneten oder normalen Spalten ist dieselbe.

Alter Table SchemaName.TableName
drop Column ColumnName

Nehmen wir an, wir wollen löschen Berechnete Spalte „FullName“ aus der Tabelle „dbo.Customer“. Wir können das folgende Skript verwenden.

Ändern Sie die Tabelle dbo.Customer drop column FullName