SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

CASE SQLite


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 ] 
ENDCode 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.

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 ] 
ENDCode 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.

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

Neste tutorial, você aprendeu sobre SQLite CASE expressão para formar lógica condicional dentro de uma consulta SQL.