Declaración de caso de MySQL
La declaración CASE de MySQL
La CASE
declaración pasa por las condiciones y devuelve un valor cuando se cumple la primera condición (como una declaración if-then-else). Entonces, una vez que una condición es verdadera, dejará de leer y devolverá el resultado. Si ninguna condición es verdadera, devuelve el valor de la ELSE
cláusula.
Si no hay ELSE
parte y ninguna condición es verdadera, devuelve NULL.
Sintaxis de CASO
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN
conditionN THEN resultN
ELSE result
END;
Base de datos de demostración
A continuación se muestra una selección de la tabla "Detalles del pedido" en la base de datos de ejemplo de Northwind:
OrderDetailID | OrderID | ProductID | Quantity |
---|---|---|---|
1 | 10248 | 11 | 12 |
2 | 10248 | 42 | 10 |
3 | 10248 | 72 | 5 |
4 | 10249 | 14 | 9 |
5 | 10249 | 51 | 40 |
Ejemplos de casos de MySQL
El siguiente SQL pasa por las condiciones y devuelve un valor cuando se cumple la primera condición:
Ejemplo
SELECT OrderID, Quantity,
CASE
WHEN Quantity > 30
THEN 'The quantity is greater than 30'
WHEN Quantity = 30 THEN 'The
quantity is 30'
ELSE 'The quantity is under 30'
END AS QuantityText
FROM OrderDetails;
El siguiente SQL ordenará los clientes por ciudad. Sin embargo, si la ciudad es NULL, ordene por país:
Ejemplo
SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
WHEN City IS NULL THEN Country
ELSE City
END);