SQL | Declaración de caso

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.

  1. 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
    
  2. 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
    
  3. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *