sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo usar Case Statement para el formato condicional en Select Query - Tutorial de SQL Server/TSQL, parte 116

Escenario:

Está trabajando como desarrollador de SQL Server, debe consultar la tabla dbo.Customer que tiene la columna CountryShortName con abreviaturas de países. Desea generar otras columnas con el nombre completo del país utilizando los valores de la columna CountryShortName. ¿Cómo harías eso?

Solución:

Puede usar expresiones Case para generar esta nueva columna según el valor de CountryShortName. En nuestro ejemplo, solo usamos columnas individuales, pero puede usar varias columnas y verificar múltiples condiciones.
Vamos a crear la tabla dbo.Customer con algunos datos de muestra y luego escribiremos nuestra instrucción Select con la expresión 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) Puede usar el Nombre de columna para el que desea verificar los valores justo después de Caso, como se muestra a continuación. Luego escriba todas las condiciones en esa columna y finalmente use Fin como 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
 
Cómo usar Case Statement en SQL Server - Tutorial de SQL Server / TSQL
 
 Si no desea usar la parte Else, puede eliminarla, pero en caso de que tenga valor y no coincida con sus condiciones, devolverá Nulo. En mi caso, si el valor no coincide con mis condiciones, me gustaría mostrar como "No proporcionado" usando la parte Else.
2) No use el nombre de columna justo después de la palabra clave Caso También puede escribir la declaración del caso como se muestra a continuación. En el siguiente ejemplo, no escribimos el nombre de la columna justo después del caso. En este caso, tenemos que escribir columna después de cada Cuándo. Esta forma de escritura se utiliza cuando desea comprobar las condiciones de varias columnas o un rango de valores.
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
 
Cómo usar Case Statement para el formato condicional en consultas SQL - SQL Server / Tutorial TSQL