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.