1.1 Lista de funciones condicionales
El lenguaje SQL tiene una lista de funciones que son algo similares al operador if-else
en switch
Java.
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 CASE
es 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 IF
es 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 .
GO TO FULL VERSION