Resumo: neste tutorial, você aprenderá sobre o SQLite
CASE
expressão para adicionar a lógica condicional a uma consulta. O SQLite
CASE
expressão avalia uma lista de condições e retorna uma expressão com base no resultado da avaliação. O
CASE
expressão é semelhante ao IF-THEN-ELSE
declaração em outras linguagens de programação. Você pode usar o
CASE
expressão em qualquer cláusula ou instrução que aceite uma expressão válida. Por exemplo, você pode usar o CASE
expressão em cláusulas como WHERE
, ORDER BY
, HAVING
, SELECT
e declarações como SELECT
, UPDATE
e DELETE
. SQLite fornece duas formas de
CASE
expressão:simples CASE
e pesquisou CASE
. SQLite simples CASE
expressão
O simples
CASE
expression compara uma expressão a uma lista de expressões para retornar o resultado. O seguinte ilustra a sintaxe do simples CASE
expressão. 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)
O simples
CASE
expressão compara a case_expression
para a expressão aparece no primeiro WHEN
cláusula, when_expression_1
, por igualdade. Se a
case_expression
é igual a when_expression_1
, o simples CASE
retorna a expressão no THEN
correspondente cláusula, que é o result_1
. Caso contrário, o simples
CASE
expressão compara a case_expression
com a expressão no próximo WHEN
cláusula. Caso não haja
case_expression
corresponde à when_expression
, o CASE
expressão retorna o result_else
no ELSE
cláusula. Se você omitir o ELSE
cláusula, o CASE
expressão retorna NULL. O simples
CASE
expressão usa avaliação de curto-circuito. Em outras palavras, ele retorna o resultado e para de avaliar outras condições assim que encontra uma correspondência. Simples CASE
exemplo
Vamos dar uma olhada nos
customers
tabela no banco de dados de exemplo. ![](http://www.sqldat.com/article/uploadfiles/202205/2022051314220361.png)
Suponha que você tenha que fazer um relatório dos grupos de clientes com a lógica de que se um cliente se localiza nos EUA, esse cliente pertence ao grupo doméstico, caso contrário o cliente pertence ao grupo estrangeiro.
Para fazer este relatório, você usa o simples
CASE
expressão no SELECT
declaração da seguinte forma: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)
Tente
SQLite pesquisou CASE
expressão
O
CASE
pesquisado expressão avalia uma lista de expressões para decidir o resultado. Observe que o simples CASE
expressão apenas compara por igualdade, enquanto o CASE
pesquisado expressão pode usar qualquer forma de comparação. O seguinte ilustra a sintaxe do
CASE
pesquisado expressão. 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)
O
CASE
pesquisado expression avalia as expressões booleanas na sequência especificada e retorna o resultado correspondente se a expressão for avaliada como verdadeira. Caso nenhuma expressão seja avaliada como verdadeira, o
CASE
pesquisado expressão retorna a expressão no ELSE
cláusula se especificado. Se você omitir o ELSE
cláusula, o CASE
pesquisado expressão retorna NULL
. Semelhante ao simples
CASE
expressão, o CASE
pesquisado expressão interrompe a avaliação quando uma condição é atendida. Pesquisou CASE
exemplo
Usaremos as
tracks
mesa para demonstração. ![](http://www.sqldat.com/article/uploadfiles/202205/2022051314220336.png)
Suponha que você queira classificar as faixas com base em sua duração, como menos um minuto, a faixa é curta; entre 1 e 5 minutos, a faixa é média; superior a 5 minutos, a faixa é longa.
Para conseguir isso, você usa o
CASE
pesquisado expressão da seguinte forma: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)
Tente
![](http://www.sqldat.com/article/uploadfiles/202205/2022051314220349.png)
Neste tutorial, você aprendeu sobre SQLite
CASE
expressão para formar lógica condicional dentro de uma consulta SQL.