Resumo : neste tutorial, você aprenderá como usar a função SQLite COALESCE para lidar com valores nulos.
Introdução à função SQLite COALESCE
A função COALESCE aceita dois ou mais argumentos e retorna o primeiro argumento não nulo. O seguinte ilustra a sintaxe da função COALESCE:
COALESCE(parameter1,parameter2, …);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Se todos os argumentos forem NULL, a função COALESCE retornará NULL.
A função COALESCE é equivalente à função NVL no Oracle ou à função IFNULL no MySQL.
Veja os seguintes exemplos básicos:
SELECT COALESCE(10,20); -- return 10
SELECT COALESCE(NULL,20,10); -- returns 20
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Na prática, a função COALESCE é usada para substituir um valor padrão por um valor NULL.
Exemplos de SQLite COALESCE
Consulte a tabela de clientes a seguir no banco de dados de amostra .
A consulta a seguir retorna o nome, o sobrenome e a empresa dos clientes.
SELECT firstname,
lastname,
company
FROM customers
ORDER BY firstname;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Na customers
tabela, as informações da empresa do cliente, que não possui empresa, são armazenadas como valores NULOS.
Você pode usar a função COALESCE para substituir o valor NULL por outro valor, por exemplo, individual como a seguinte consulta:
SELECT firstname,
lastname,
coalesce(company, 'Individual') entity
FROM customers
ORDER BY firstname;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Vejamos outro exemplo que comumente vemos em cenários reais.
Primeiro, cria uma nova tabela chamada memberships
que armazena o nome do programa, o preço líquido e o desconto.
CREATE TABLE IF NOT EXISTS memberships (
membership_id INT PRIMARY KEY,
program_name TEXT NOT NULL,
net_price NUMERIC NOT NULL,
discount NUMERIC
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Segundo, insira alguns dados de amostra na tabela de associações; use o valor NULL para a adesão que não tem desconto.
INSERT INTO memberships(program_name, net_price, discount)
VALUES('1 Month', 100, null),
('3 Months', 300, 10),
('6 Months', 600, 30);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Terceiro, consulte os dados da memberships
tabela; calcule o valor que os membros devem pagar subtraindo o desconto do preço líquido.
SELECT program_name,
(net_price - discount) AS amount
FROM memberships;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O valor da assinatura de 1 mês é NULL porque o valor do desconto é NULL. Para evitar esse erro, use a função COALESCE da seguinte maneira:
SELECT program_name,
(net_price - coalesce(discount, 0) ) AS amount
FROM memberships;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste tutorial, você aprendeu como usar a função SQLite para manipular valores NULL nos dados.