SQL | Expresiones condicionales

Las siguientes son expresiones condicionales en SQL

  1. La expresión CASE : le permite usar declaraciones IF-THEN-ELSE sin tener que invocar procedimientos.
    En una expresión CASE simple, el SQL busca el primer par CUANDO……ENTONCES para el cual expr es igual a expr_comparación y devuelve return_expr. Si la condición anterior no se cumple, existe una cláusula ELSE, el SQL devuelve else_expr. De lo contrario, devuelve NULL.
    No podemos especificar nulo literal para return_expr y else_expr. Todas las expresiones (expr, compare_expr, return_expr) deben ser del mismo tipo de datos.
    Sintaxis:
    CASE expr WHEN comparison_expr1 THEN return_expr1
             [WHEN comparison_expr2 THEN return_expr2
              .
              .
              .
              WHEN comparison_exprn THEN return_exprn
              ELSE else_expr]
    END
    

    Ejemplo:

      Input :
      SELECT first_name, department_id, salary,
             CASE department_id WHEN 50 THEN 1.5*salary
                               WHEN 12 THEN 2.0*salary
             ELSE salary
             END "REVISED SALARY"
      FROM Employee;

      Producción :

    Explicación : en las instrucciones SQL anteriores, el valor de department_id está decodificado. Si es 50 entonces el salario se gana 1.5 veces, si es 12 entonces el salario se gana 2 veces, de lo contrario no hay cambio en el salario.

  2. La función DECODE: facilita las consultas condicionales al hacer el trabajo de una instrucción CASE o IF-THEN-ELSE.
    La función DECODE decodifica una expresión de forma similar a la lógica IF-THEN-ELSE utilizada en varios idiomas. La función DECODE decodifica la expresión después de compararla con cada valor de búsqueda. Si la expresión es la misma que la búsqueda, se devuelve el resultado.
    Si se omite el valor predeterminado, se devuelve un valor nulo donde un valor de búsqueda no coincide con ninguno de los valores de resultado.
    Sintaxis:
    DECODE(col/expression, search1, result1
                            [, search2, result2,........,]
                            [, default])
    
    Input :
    SELECT first_name, department_id, salary,
           DECODE(department_id, 50, 1.5*salary,
                                 12, 2.0*salary,
                  salary)
           "REVISED SALARY"
    FROM Employee;
    

    Salida:

    Explicación: en las declaraciones SQL anteriores, se prueba el valor de department_id. Si es 50 entonces el salario se gana 1.5 veces, si es 12 entonces el salario se gana 2 veces, de lo contrario no hay cambio en el salario.

  3. COALESCE: Devuelve el primer argumento no nulo. Se devuelve nulo solo si todos los argumentos son nulos. A menudo se utiliza para sustituir un valor predeterminado por valores nulos cuando se recuperan datos para mostrarlos.
    NOTA: Al igual que las expresiones CASE, COALESCE tampoco evaluará los argumentos a la derecha del primer argumento no nulo encontrado.
    Sintaxis:
    COALESCE(value [, ......] )
    
    Input:
    SELECT COALESCE(last_name, '- NA -')
    from Employee;
    

    Salida:

    Explicación: «- NA -» se mostrará en el lugar donde el apellido es nulo; de lo contrario, se mostrarán los respectivos apellidos.

  4. MAYOR: Devuelve el valor más grande de una lista de cualquier número de expresiones. La comparación distingue entre mayúsculas y minúsculas. Si los tipos de datos de todas las expresiones de la lista no son iguales, el resto de las expresiones se convierten al tipo de datos de la primera expresión para la comparación y, si esta conversión no es posible, SQL generará un error.
    NOTA: Devuelve nulo si alguna expresión de la lista es nula.
    Sintaxis:
    GREATEST(expr1, expr2 [, .....] )
    
    • Input:
      SELECT GREATEST('XYZ', 'xyz')
      from dual;
      
      Output:
      GREATEST('XYZ', 'xyz')
      xyz
      

      Explicación: el valor ASCII de los alfabetos pequeños es mayor.

    • Input:
      SELECT GREATEST('XYZ', null, 'xyz')
      from dual;
      
      Output:
      GREATEST('XYZ', null, 'xyz')
      -

      Explicación: dado que nulo está presente, se mostrará nulo como salida (como se menciona en la descripción anterior).

  5. IFNULL: Si expr1 no es NULL, devuelve expr1; de lo contrario, devuelve expr2. Devuelve un valor numérico o de string, según el contexto en el que se utilice.
    Sintaxis:
    IFNULL(expr1, expr2)
    
    • Input:
      SELECT IFNULL(1,0) 
      FROM dual;
      
      Output:
      -
      1
      

      Explicación: dado que ninguna expresión es nula.

    • Input:
      SELECT IFNULL(NULL,10) 
      FROM dual;
      
      Output:
      --
      10
      

      Explicación: Dado que expr1 es nulo, se muestra expr2.

  6. IN: Comprueba si un valor está presente dentro de un conjunto de valores y se puede usar con WHERE, CHECK y creación de vistas.
    NOTA: Al igual que las expresiones CASE y COALESCE, IN tampoco evaluará los argumentos a la derecha del primer argumento no nulo encontrado.
    Sintaxis:
    WHERE column IN (x1, x2, x3 [,......] )
    
    Input:
    SELECT * from Employee
    WHERE department_id IN(50, 12);
    

    Producción:

    Explicación: Todos los datos de los empleados se muestran con el ID de departamento 50 o 12.

  7. MENOS: Devuelve el valor más pequeño de una lista de cualquier número de expresiones. La comparación distingue entre mayúsculas y minúsculas. Si los tipos de datos de todas las expresiones de la lista no son iguales, el resto de las expresiones se convierten al tipo de datos de la primera expresión para la comparación y, si esta conversión no es posible, SQL generará un error.
    NOTA: Devuelve nulo si alguna expresión de la lista es nula.

    Sintaxis:

    LEAST(expr1, expr2 [, ......])
    
      1. strong>Input: SELECT LEAST('XYZ', 'xyz') from dual; Output: LEAST('XYZ', 'xyz') XYZ

      Explicación: el valor ASCII de las letras mayúsculas es menor.

      1. Input: SELECT LEAST('XYZ', null, 'xyz') from dual; Output: LEAST('XYZ', null, 'xyz') -

      Explicación: dado que nulo está presente, se mostrará nulo como salida (como se menciona en la descripción anterior).

  8. NULLIF: Devuelve un valor nulo si valor1=valor2, de lo contrario devuelve valor1.
    Sintaxis:
    NULLIF(value1, value2)
    

    Ejemplo:

      Input: SELECT NULLIF(9995463931, contact_num) from Employee;

    Producción:

Explicación: se muestra NULL para el empleado cuyo número coincide con el número dado. Para el resto de los empleados, se devuelve value1.

Este artículo es una contribución de akanshgupta . 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 *