Resumen: en este tutorial, aprenderá sobre SQLite CASE
expresión para agregar la lógica condicional a una consulta.
El CASE
de SQLite expresión evalúa una lista de condiciones y devuelve una expresión basada en el resultado de la evaluación.
El CASE
expresión es similar a IF-THEN-ELSE
declaración en otros lenguajes de programación.
Puedes usar el CASE
expresión en cualquier cláusula o declaración que acepte una expresión válida. Por ejemplo, puede usar el CASE
expresión en cláusulas como WHERE
, ORDER BY
, HAVING
, SELECT
y declaraciones como SELECT
, UPDATE
y DELETE
.
SQLite proporciona dos formas de CASE
expresión:simple CASE
y busqué CASE
.
SQLite simple CASE
expresión
El CASE
simple expresión compara una expresión con una lista de expresiones para devolver el resultado. Lo siguiente ilustra la sintaxis del simple CASE
expresión.
CASE case_expression
WHEN when_expression_1 THEN result_1
WHEN when_expression_2 THEN result_2
...
[ ELSE result_else ]
END
Code language: SQL (Structured Query Language) (sql)
El CASE
simple expresión compara la case_expression
a la expresión aparece en el primer WHEN
cláusula, when_expression_1
, por la igualdad.
Si case_expression
es igual a when_expression_1
, el simple CASE
devuelve la expresión en el correspondiente THEN
cláusula, que es el result_1
.
De lo contrario, el simple CASE
expresión compara la case_expression
con la expresión en el siguiente WHEN
cláusula.
En caso de que no haya case_expression
coincide con when_expression
, el CASE
expresión devuelve el result_else
en el ELSE
cláusula. Si omite el ELSE
cláusula, el CASE
expresión devuelve NULL.
El CASE
simple expresión utiliza evaluación de cortocircuito. En otras palabras, devuelve el resultado y deja de evaluar otras condiciones tan pronto como encuentra una coincidencia.
Simple CASE
ejemplo
Echemos un vistazo a los customers
tabla en la base de datos de ejemplo.
Supongamos que tiene que hacer un informe de los grupos de clientes con la lógica de que si un cliente se ubica en los EE. UU., este cliente pertenece al grupo nacional, de lo contrario, el cliente pertenece al grupo extranjero.
Para hacer este reporte, usas el simple CASE
expresión en el SELECT
declaración de la siguiente manera:
SELECT customerid,
firstname,
lastname,
CASE country
WHEN 'USA'
THEN 'Domestic'
ELSE 'Foreign'
END CustomerGroup
FROM
customers
ORDER BY
LastName,
FirstName;
Code language: SQL (Structured Query Language) (sql)
Pruébalo
SQLite buscó CASE
expresión
El CASE
buscado expresión evalúa una lista de expresiones para decidir el resultado. Tenga en cuenta que el simple CASE
expresión solo compara la igualdad, mientras que el CASE
buscado expresión puede usar cualquier forma de comparación.
A continuación se ilustra la sintaxis del CASE
buscado expresión.
CASE
WHEN bool_expression_1 THEN result_1
WHEN bool_expression_2 THEN result_2
[ ELSE result_else ]
END
Code language: SQL (Structured Query Language) (sql)
El CASE
buscado expresión evalúa las expresiones booleanas en la secuencia especificada y devuelve el resultado correspondiente si la expresión se evalúa como verdadera.
En caso de que ninguna expresión se evalúe como verdadera, el CASE
buscado expresión devuelve la expresión en ELSE
cláusula si se especifica. Si omite el ELSE
cláusula, el CASE
buscado expresión devuelve NULL
.
Similar al simple CASE
expresión, el CASE
buscado expresión detiene la evaluación cuando se cumple una condición.
Buscado CASE
ejemplo
Usaremos las tracks
mesa para la demostración.
Suponga que desea clasificar las pistas en función de su duración, como menos de un minuto, la pista es corta; entre 1 y 5 minutos, el track es medio; más de 5 minutos, la pista es larga.
Para lograr esto, utiliza el CASE
buscado expresión de la siguiente manera:
SELECT
trackid,
name,
CASE
WHEN milliseconds < 60000 THEN
'short'
WHEN milliseconds > 60000 AND milliseconds < 300000 THEN 'medium'
ELSE
'long'
END category
FROM
tracks;
Code language: SQL (Structured Query Language) (sql)
Pruébalo
En este tutorial, ha aprendido sobre SQLite CASE
expresión para formar lógica condicional dentro de una consulta SQL.