la instrucción CASE de SQL Server es equivalente a la instrucción IF-THEN en Excel.
la instrucción CASE se utiliza para implementar la lógica en la que desea establecer el valor de una columna en función de los valores de otras columnas.
la sentencia CASE de SQL Server consta de al menos un par de sentencias WHEN Y THEN. La instrucción WHEN especifica la condición a probar. La instrucción THEN especifica la acción si la condición WHEN devuelve TRUE.,
la instrucción ELSE es opcional y se ejecuta cuando ninguna de las condiciones WHEN devuelve true. La sentencia CASE termina con una palabra clave END.
en este artículo, vamos a echar un vistazo a una serie de diferentes ejemplos de la declaración de caso. Pero antes de hacer eso, vamos a crear algunos datos ficticios para trabajar con.,/td>
el script anterior ha creado una base de datos ficticia llamada showroom con una tabla llamada cars., La tabla Cars tiene siete columnas: id, Nombre, compañía, potencia, color, modelo y condición.
Ahora vamos a insertar algunos datos ficticios en la tabla Cars., Ejecute la siguiente secuencia de comandos:
Vamos a ver cómo nuestro conjunto de datos se ve, ejecute la siguiente secuencia de comandos:
1
|
SELECCIONE * DE Coches
|
El resultado se parece a esto:
Usted puede ver que la columna condición contiene una X en cada fila por el momento., Estableceremos el valor de la columna Condición, dependiendo de la columna modelo, usando la instrucción CASE para que pueda ver claramente lo que está sucediendo.,
The syntax of the CASE statement is pretty straight forward:
1
2
3
4
5
|
SELECT column1,
column2,
CASE WHEN CONDITION THEN ‘Value1’
ELSE ‘Value2’ END AS columnX
FROM Cars
|
The CASE statement has to be included inside the SELECT Statement., Comienza con la palabra clave CASE seguida de la palabra clave WHEN Y luego la condición.
la condición puede ser cualquier expresión válida de SQL Server que devuelva un valor booleano. Por ejemplo, la condición puede ser model > 2000, la cláusula THEN se usa después de la condición. Si la condición devuelve true, el valor que sigue a la cláusula THEN se almacena en columnX. Else, el valor después de la cláusula ELSE, también se almacenará en columnX. La instrucción CASE de SQL Server termina con la cláusula END.,
ejemplos de sentencias CASE
veamos ahora la sentencia CASE en acción.
en una sección anterior, creamos una tabla llamada Cars dentro de la base de datos de ShowRoom.
la columna Condición tenía el valor X para todas las filas. Usaremos la instrucción CASE de SQL Server para establecer el valor de la columna condition en «New» si la columna model tiene un valor mayor que 2000, de lo contrario el valor de la columna condition se establecerá en «Old».,ok at the following script:
1
2
3
4
5
|
SELECT name,
model,
CASE WHEN model > 2000 THEN ‘New’
ELSE ‘Old’ END AS condition
FROM Cars
|
The above script displays the name, model and condition columns from the Cars table., La salida del script anterior se ve así:
puede ver que el valor de X en la columna Condición ha sido reemplazado por» nuevo «y» viejo » dependiendo del modelo del automóvil.
múltiples condiciones en la instrucción CASE
puede evaluar múltiples condiciones en la instrucción CASE.,
escribamos una sentencia CASE de SQL Server que establezca el valor de la columna condition en «New» si el valor en la columna model es mayor que 2010, en «Average» si el valor en la columna model es mayor que 2000, y en » Old » si el valor en la columna model es mayor que 1990.,
la salida del script anterior se ve así:
en el script anterior, asignamos tres valores diferentes a la columna Condición dependiendo del valor en la columna modelo.,
sin embargo, en el script anterior, las condiciones se superponen como. el modelo con un valor mayor que 2010 también tiene un valor mayor que 2000 y 1990. Una mejor manera de implementar múltiples condiciones es usar operadores lógicos como AND, OR, NOT, etc.,N model > 2010 THEN ‘New’
la salida del script anterior se ve así:
También podemos evaluar múltiples condiciones de diferentes columnas utilizando la instrucción Case de SQL Server., En el siguiente ejemplo, asignaremos el valor de «nuevo blanco» a la columna condición donde el modelo es mayor que 2010 y el color es blanco.,HEN ‘New’
la salida se ve así:
puede ver en la fila 5 que, dado que el color es blanco y el modelo es mayor que 2010, el valor de la columna condición se ha establecido en «nuevo blanco» en la salida.,
usando GROUP BY con la instrucción CASE de SQL Server
la instrucción CASE también se puede usar junto con la instrucción GROUP BY para aplicar funciones aggregate.,v id=»1dd7e33b85″>
en el script anterior usamos la función COUNT aggregate con la instrucción CASE.,
la instrucción CASE de SQL Server establece el valor de la columna condition en » New «O»Old». Dentro de la cláusula GROUP BY, especificamos que el recuento correspondiente para «nuevo» se incrementa en 1, siempre que se encuentre un valor de modelo mayor que 2000. La sección Else significa que aumentamos la cuenta para «Viejo» por 1 si el valor del modelo es 2000 o menos. La salida del script anterior se ve así:
dado que nuestro conjunto de datos tiene cinco vehículos con un valor para ‘modelo’ mayor que 2000, puede ver un 5 en la columna count para vehículos «nuevos»., Del mismo modo, teníamos 5 vehículos viejos y por lo tanto podemos ver 5 para la columna de conteo de vehículos «viejos».
del mismo modo, podemos agrupar por más de dos valores., 2000 Entonces ‘promedio’
en el script anterior, agrupamos los datos en tres categorías: «nuevo», «promedio» y «viejo».,
la salida se ve así:
puede ver el recuento de los coches de Condición» Nuevo»,» promedio «y» viejo».
conclusión
la instrucción CASE es útil cuando desea implementar la lógica IF-THEN en SQL Server. En este artículo, vimos lo que es la sentencia CASE junto con su sintaxis. También vimos diferentes ejemplos de sentencia CASE junto con su uso con la cláusula GROUP BY.,
otros excelentes artículos de Ben
- comprensión de SQL Server query plan cache
- ¿Cuál es la diferencia entre los índices agrupados y no agrupados en SQL Server?
- Cómo utilizar las funciones de la ventana
- la Consulta de datos utilizando SQL Server CASO de declaración
- Autor
- mensajes Recientes
Ver todos los mensajes de Ben Richardson
- Potencia BI: Gráficos en Cascada y se Combina efectos Visuales – 19 de enero de 2021
- Potencia BI: formato Condicional y los datos de los colores en la acción – 14 de enero de 2021
- Potencia BI: Importación de datos de SQL Server y MySQL – 12 de enero de 2021