Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak używać instrukcji Case do formatowania warunkowego w wybranym zapytaniu — samouczek SQL Server / TSQL, część 116

Scenariusz:

Pracujesz jako programista SQL Server, musisz wykonać zapytanie do tabeli dbo.Customer zawierającej kolumnę CountryShortName ze skrótami krajów. Chcesz wygenerować kolejne kolumny z pełną nazwą kraju, używając wartości kolumny CountryShortName. Jak byś to zrobił?

Rozwiązanie:

Możesz użyć wyrażeń Case, aby wygenerować tę nową kolumnę w zależności od wartości CountryShortName. W naszym przykładzie używamy tylko pojedynczych kolumn, ale możesz użyć wielu kolumn i sprawdzić wiele warunków.
Utwórzmy tabelę dbo.Customer z przykładowymi danymi, a następnie napiszemy naszą instrukcję Select z wyrażeniem Case.
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) Możesz użyć nazwy kolumny, dla której chcesz sprawdzić wartości zaraz po wielkości liter, jak pokazano poniżej. Następnie wpisz wszystkie warunki w tej kolumnie i na koniec użyj End jako 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
 
Jak używać instrukcji Case w SQL Server — samouczek SQL Server / TSQL
 
 Jeśli nie lubisz używać Else part, możesz to usunąć, ale w przypadku, gdy będziesz miał wartość i nie pasuje do twoich warunków, zwróci wartość Null. W moim przypadku, jeśli wartość nie jest zgodna z moimi warunkami, chciałbym wyświetlić jako „Nie podano” przy użyciu części Inna.
2) Nie używaj nazwy kolumny bezpośrednio po słowie kluczowym Case Możesz również napisać opis przypadku, jak pokazano poniżej. W poniższym przykładzie nie wpisaliśmy nazwy kolumny zaraz po literze Case. W tym przypadku musimy wpisać kolumnę po każdym When. Ten sposób pisania jest używany, gdy chcesz sprawdzić warunki dla wielu kolumn lub zakresu wartości.
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
 
Jak używać instrukcji Case do formatowania warunkowego w zapytaniu SQL — samouczek SQL Server / TSQL
 

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znajdź maksymalną wartość i pokaż odpowiednią wartość z innego pola na serwerze SQL

  2. Jak uzyskać wyraźną listę słów używanych we wszystkich rekordach pola przy użyciu MS SQL?

  3. Jak usunąć wszystkie klucze podstawowe ze wszystkich tabel w bazie danych SQL Server — część samouczka SQL Server / TSQL 65

  4. Jak wykonać GROUP BY na aliasowanej kolumnie w MS-SQL Server?

  5. Jak przedefiniować kolumny zwracane przez procedurę składowaną w SQL Server