1.1 Lista de funciones condicionales

El lenguaje SQL tiene una lista de funciones que son algo similares al operador if-elseen switchJava.

Hay 4 funciones de este tipo en total:

Funciones Descripción
1 CASO interruptor analógico
2 SI() Un análogo del operador ternario o if-else
3 IFNULL() análogo de if-else
4 NULLIF() análogo de if-else

Los últimos tres en SQL se representan como funciones y CASEes un operador completo, por lo que lo consideraremos por separado al final.

1.2 Función SI()

Una función IF()en SQL es algo similar a un operador ternario en Java. En lenguaje SQL, toma 3 parámetros y se ve así:

IF (condition, true, false)

Se deben pasar tres expresiones a la función IF:

  • una condición que se prueba para la verdad;
  • una expresión que se devuelve cuando la condición es verdadera;
  • una expresión que se devuelve cuando la condición es falsa.

A continuación daré algunos ejemplos para que sea más fácil entender cómo funciona:

Pedido Resultado
1 SELECCIONE SI ( 1>2 , 2, 3) 3
2 SELECCIONE SI ( 1<2 , 'sí', 'no') 'Sí'
3 SELECCIONE SI( STRCMP('prueba','prueba1' ), 'no', 'sí') 'No'

1.3 Función IFNULL() y NULLIF()

También hay dos modificaciones de la función IF().

La primera modificación es la función IFNULL(). Solo toma dos valores:

IFNULL (expression 1, expression 2)

Si expresión1 no es igual a NULL, la función devolverá expresión1 . Si expresión1 IS NULL, , la función devolverá expresión2 . La esencia es la sustitución del valor por defecto cuando el campo es igual a NULL.

La segunda modificación de la función IFes la función NULLIF(), también toma dos valores:

NULLIF (expression 1, expression 2)

Funciona en sentido contrario:

  • si expresión1 es igual a expresión2 , entonces la función devuelve NULL;
  • si las expresiones no son iguales, se devuelve expresión1 .