sql >> Database >  >> RDS >> Sqlserver

Case-instructie gebruiken voor voorwaardelijke opmaak in Select Query - SQL Server / TSQL-zelfstudie, deel 116

Scenario:

U werkt als SQL Server-ontwikkelaar, u moet een query uitvoeren op de dbo.Customer-tabel met de kolom CountryShortName met landafkortingen. U wilt een andere kolom met de volledige naam van het land genereren door kolomwaarden van CountryShortName te gebruiken. Hoe zou je dat doen?

Oplossing:

U kunt Case-expressies gebruiken om deze nieuwe kolom te genereren, afhankelijk van de waarde van CountryShortName. In ons voorbeeld gebruiken we alleen enkele kolommen, maar u kunt meerdere kolommen gebruiken en controleren op meerdere voorwaarden.
Laten we een dbo.Customer-tabel maken met enkele voorbeeldgegevens en dan zullen we onze Select-instructie schrijven met Case-expressie.
>
Create table dbo.Customer
 (Id int,
  FName VARCHAR(50),
  LName VARCHAR(50),
  CountryShortName CHAR(2))
GO
insert into dbo.Customer
Values (
1,'Raza','M','PK'),
(2,'Rita','John','US'),
(3,'Sukhi','Singh',Null)
 
 
1) U kunt Kolomnaam waarvan u de waarden wilt controleren direct na Case gebruiken, zoals hieronder weergegeven. Schrijf vervolgens alle voorwaarden in die kolom en gebruik tenslotte End as NewColumnName
Select 
FName,
LName,
CountryShortName,
Case CountryShortName
When 'Pk' Then 'Pakistan'
When 'US' Then 'United States of America'
When 'IN' Then 'India'
Else 'Not Provided' 
End AS CountryFullName
From dbo.Customer
 
Hoe gebruik je Case Statement in SQL Server - SQL Server / TSQL-zelfstudie
 
 Als u het Else-gedeelte niet wilt gebruiken, kunt u dat verwijderen, maar in het geval dat u waarde heeft en het niet overeenkomt met uw voorwaarden, wordt Null geretourneerd. In mijn geval, als de waarde niet overeenkomt met mijn voorwaarden, zou ik willen weergeven als "Niet verstrekt" door het gedeelte Else te gebruiken.
2) Gebruik Kolomnaam niet direct na Hoofdletterzoekwoord U kunt de casusverklaring ook schrijven zoals hieronder weergegeven. In het onderstaande voorbeeld hebben we Kolomnaam niet direct na Case geschreven. In dit geval moeten we kolom na elke Wanneer typen. Deze manier van schrijven wordt gebruikt wanneer u voorwaarden voor meerdere kolommen of waardenbereiken wilt controleren.
Select 
FName,
LName,
CountryShortName,
Case 
When CountryShortName='Pk' Then 'Pakistan'
When CountryShortName='US' Then 'United States of America'
When CountryShortName='IN' Then 'India'
Else 'Not Provided' 
End AS CountryFullName
From dbo.Customer
 
Hoofdlettergebruik gebruiken voor voorwaardelijke opmaak in SQL-query - SQL Server / TSQL-zelfstudie
 

  1. Hoe vind je alle tabellen met externe sleutels die verwijzen naar bepaalde table.column en die waarden hebben voor die externe sleutels?

  2. U weet dat u dat wilt:migreren van Oracle naar MariaDB

  3. Hasj Wat? Hash-indexen begrijpen

  4. Hoe te repareren "Procedure verwacht parameter '@statement' van het type 'ntext/nchar/nvarchar'." Fout in SQL Server