sql >> Database >  >> RDS >> Sqlserver

Hoe een berekende kolom in de SQL Server-tabel toe te voegen - SQL Server / T-SQL-zelfstudie, deel 47

Scenario:

Je werkt als SQL Server Developer voor een van de advocatenkantoren. U hebt een dbo.Klanttabel gemaakt met behulp van onderstaande definitie

CREATE TABLE Customer (
    CustomerId INT Identity(1, 1)
    ,FirstName VARCHAR(50)
    ,LastName VARCHAR(50)
    ,Age SMALLINT
    ,PhoneNumber CHAR(9)
    ,DOB DATE
    ,Gender CHAR(1)
    )

U moet een volledige naam hebben die moet bestaan ​​uit voornaam en achternaam. U wilt de dubbele gegevens niet in de tabel opslaan door een nieuwe kolom toe te voegen voor Volledige naam. Wat zijn uw opties?

Ook afhankelijk van de leeftijd willen we graag een nieuwe kolom toevoegen, bel IsSenior en markeer deze als 1 indien boven de 65 anders 0.

Oplossing:

SQL Server biedt ons een berekende kolom, dat is een virtuele kolom en slaat geen gegevens op tenzij deze is gemarkeerd als Aanhoudend. Dat betekent dat we een berekende kolom (volledige naam) kunnen maken die voornaam- en achternaamgegevens gebruikt. Door een berekende kolom te maken, hoeven we geen dubbele gegevens op te slaan voor de volledige naamkolom.

Laten we doorgaan en de volledige naam van de berekende kolommen en IsSenior maken, afhankelijk van onze criteria.

CREATE TABLE Customer (
    CustomerId INT Identity(1, 1)
    ,FirstName VARCHAR(50)
    ,LastName VARCHAR(50)
    ,Age SMALLINT
    ,PhoneNumber CHAR(9)
    ,DOB DATE
    ,Gender CHAR(1)
    ,FullName AS FirstName + ' ' + LastName
    ,IsSenior AS CASE 
        WHEN Age > 65
            THEN 1
        ELSE 0
        END
    )
 We hebben voornaam en achternaam samengevoegd voor volledige naam en de casusverklaring voor de IsSenior-computerkolom geschreven. Laten we doorgaan en een paar records invoegen.

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

Ik heb gemerkt dat ik niets heb ingevoegd voor de kolommen FullName en IsSenior. De waarden voor deze kolommen worden berekend wanneer we de gegevens selecteren.

Berekende kolommen toevoegen aan SQL Server-tabel - T-SQL-zelfstudie

Als u moet Berekende kolom toevoegen aan het verlaten van de tabel, u kunt de onderstaande syntaxis gebruiken

Tabelschemanaam wijzigen.Tabelnaam
Kolomnaam toevoegen AS Logic (zoals FistName +''+LastName)

Laten we zeggen of we dat willen voeg FullName Computer Column toe aan Customer-tabel, we kunnen onderstaand script gebruiken.

Alter table dbo.Customer
    Add FullName AS FirstName+' '+LastName
 
Berekende kolom verwijderen uit SQL Server-tabel:
De syntaxis voor het verwijderen van een berekende of normale kolom is hetzelfde.

Tabelschemanaam.Tabelnaam wijzigen
Kolomkolomnaam laten vallen

Laten we zeggen of we willen verwijderen Volledige naam berekende kolom uit dbo.Klanttabel. We kunnen onderstaand script gebruiken.

Alter table dbo.Customer
    drop column FullName


  1. Bool-waarde instellen in SQL

  2. Geneste vensterfuncties in SQL

  3. Wat is een 'meerdelige identifier' en waarom kan deze niet worden gebonden?

  4. Omgaan met MySQL-datum- en tijdstempels in Java