Las declaraciones de control forman el corazón de la mayoría de los lenguajes, ya que controlan la ejecución de otros conjuntos de declaraciones. Estos también se encuentran en SQL y deben aprovecharse para usos como el filtrado de consultas y la optimización de consultas a través de una cuidadosa selección de tuplas que coincidan con nuestro requisito. En esta publicación, exploramos la instrucción Case-Switch en SQL.
La declaración CASE es la forma en que SQL maneja la lógica si/entonces.
Sintaxis:
puede haber dos formas válidas de realizar las declaraciones de cambio de caso.
- El primero toma una variable llamada case_value y la compara con alguna declaración_lista.
CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list] END CASE
-
El segundo considera una condición_de_búsqueda en lugar de una igualdad de variables y ejecuta la lista_de_instrucciones en consecuencia.
CASE WHEN search_condition THEN statement_list [WHEN search_condition THEN statement_list] ... [ELSE statement_list] END CASE
Ejemplos:
Digamos que tenemos una relación, Facultad.
Mesa de Facultad:
Facultad ID | Nombre | Departamento | Género |
---|---|---|---|
001 | Aakash | CS | METRO |
002 | Sahil | CE | METRO |
003 | John | HSS | METRO |
004 | Shelley | CS | F |
005 | Anannya | CS | F |
006 | sia | HSS | F |
Digamos que nos gustaría modificar esta tabla de modo que si el nombre del departamento es ‘CS’, se modifica a ‘Informática’, si es ‘EC’ se modifica a ‘Electrónica y comunicación’, y si es ‘ HSS’ se modifica a ‘Humanidades y Ciencias Sociales’. Esto se puede lograr usando una declaración de caso.
Consulta de muestra:
Considere una variable, nombre_departamento, que se ingresa en el código SQL.
CASE department_name WHEN 'CS' THEN UPDATE Faculty SET department='Computer Science'; WHEN 'EC' THEN UPDATE Faculty SET department='Electronics and Communication'; ELSE UPDATE Faculty SET department='Humanities and Social Sciences'; END CASE
Producción:
The department name corresponding to the given input gets renamed.
Considere otra consulta que selecciona todos los campos correspondientes a la tabla Facultad. Dado que los valores escritos en el campo Género son valores de un solo carácter (M/F), nos gustaría presentarlos en un formato más legible.
SELECT FacultyID, Name, Department, CASE Gender WHEN'M' THEN 'Male' WHEN'F' THEN 'Female' END FROM Faculty
Producción:
Facultad ID | Nombre | Departamento | Género |
---|---|---|---|
001 | Aakash | CS | Masculino |
002 | Sahil | CE | Masculino |
003 | John | HSS | Masculino |
004 | Shelley | CS | Femenino |
005 | Anannya | CS | Femenino |
006 | sia | HSS | Femenino |
Considere otra aplicación del cambio de mayúsculas y minúsculas en la ordenación personalizada de SQL.
CREATE PROCEDURE GetFaculty(@ColToSort varchar(150)) AS SELECT FacultyID, Name, Gender, Department FROM Customers ORDER BY CASE WHEN @ColToSort='Department' THEN Department WHEN @ColToSort='Name' THEN Name WHEN @ColToSort='Gender' THEN Gender ElSE FacultyID END
Producción:
The output gets sorted according to the provided field.
El procedimiento anterior (función) toma una variable de tipo de datos varchar como argumento y, en base a eso, ordena las tuplas en la tabla Facultad.
Este artículo es una contribución de Anannya Uberoi . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA