Servidor SQL: declaración CASE

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

Servidor SQL: declaración CASE

Este tutorial de SQL Server describe cómo usar SQL Server (Transact-SQL) declaración del caso Con sintaxis y ejemplos.

describir

En SQL Server (Transact-SQL), la instrucción CASE funciona como una instrucción IF-THEN-ELSE. Puede utilizar la sentencia CASE en sentencias SQL.

sintaxis

La sintaxis de la instrucción CASE en SQL Server (Transact-SQL) es:

CASE expression

   WHEN value_1 THEN result_1
   WHEN value_2 THEN result_2
   ...
   WHEN value_n THEN result_n

   ELSE result

END

o

CASE

   WHEN condition_1 THEN result_1
   WHEN condition_2 THEN result_2
   ...
   WHEN condition_n THEN result_n

   ELSE result

END

parámetro o parámetro

expresión Una expresión que se comparará con cada valor proporcionado. (es decir: valor_1, valor_2, … valor_n). value_1, value_2, … value_n Los valores que se utilizarán en la evaluación. Los valores se evalúan en el orden indicado. Una vez que un valor coincide con la expresión, la instrucción CASE ejecuta la instrucción correspondiente y ya no evalúa. condition_1, condition_2, … condition_n Condiciones que serán evaluadas. Las condiciones se evalúan en el orden indicado. Una vez que se determina que la condición es verdadera, la declaración CASE devuelve el resultado y la condición no se evalúa más. Todas las condiciones deben ser del mismo tipo de datos. result_1, result_2, … result_n Valores devueltos cuando se determina que la condición es verdadera. Todos los valores deben ser del mismo tipo de datos.

notas

  • Si no se encuentra ningún valor/la condición es VERDADERA, la declaración CASE devolverá el valor en la cláusula ELSE.
  • Si se omite la cláusula ELSE y no se encuentra que ninguna condición sea verdadera, la instrucción CASE devolverá NULL.
  • Las condiciones se evalúan en el orden indicado. Una vez que se determina que la condición es verdadera, la declaración CASE devuelve el resultado y la condición no se evalúa más.
  • No puede usar la declaración CASE para controlar el flujo del programa, pero use bucles y declaraciones condicionales.

aplicar para

La instrucción CASE está disponible en las siguientes versiones de SQL Server (Transact-SQL):

  • Servidor SQL 2017, Servidor SQL 2016, Servidor SQL 2014, Servidor SQL 2012, Servidor SQL 2008 R2, Servidor SQL 2008, Servidor SQL 2005

ejemplo

La instrucción CASE se puede utilizar con SQL Server (Transact-SQL).

Puede usar la declaración CASE en una declaración SQL de la siguiente manera: (incluida la cláusula de expresión)

SELECT contact_id,
CASE website_id
  WHEN 1 THEN 'TechOnTheNet.com'
  WHEN 2 THEN 'CheckYourMath.com'
  ELSE 'BigActivities.com'
END
FROM contacts;

O puede escribir la declaración SQL usando la declaración CASE de la siguiente manera: (omitiendo la cláusula de expresión)

SELECT contact_id,
CASE
  WHEN website_id = 1 THEN 'TechOnTheNet.com'
  WHEN website_id = 2 THEN 'CheckYourMath.com'
  ELSE 'BigActivities.com'
END
FROM contacts;

Una cosa a tener en cuenta es que la condición ELSE en la instrucción CASE es opcional. Se puede omitir. Modifiquemos nuestro ejemplo para omitir la condición ELSE.

Su declaración SQL se ve así:

SELECT contact_id,
CASE website_id
  WHEN 1 THEN 'TechOnTheNet.com'
  WHEN 2 THEN 'CheckYourMath.com'
END
FROM contacts;

o

SELECT contact_id,
CASE
  WHEN website_id = 1 THEN 'TechOnTheNet.com'
  WHEN website_id = 2 THEN 'CheckYourMath.com'
END

Con la cláusula ELSE omitida, la declaración CASE devolverá NULL si la condición no se cumple.

Comparar 2 condiciones

Aquí hay un ejemplo de cómo usar la declaración CASE para comparar diferentes condiciones:

SELECT
CASE
  WHEN contact_id < 1000 THEN 'TechOnTheNet.com'
  WHEN website_id = 2 THEN 'CheckYourMath.com'
END
FROM contacts;

Recuerde que las condiciones se evalúan en el orden indicado. Una vez que se determina que la condición es verdadera, la declaración CASE devuelve el resultado y la condición no se evalúa más. Por lo tanto, tenga cuidado al elegir el orden en que se enumeran las condiciones.