Olá, compartilhando como resolvi o desafio. Comecei pelo Select para visualizar os produtos que estavam fora de preço, depois apliquei os updates de preços conforme solicitado na tabela.
SELECT id_produto, nome_produto, preco
FROM produtos
WHERE
(nome_produto = 'Bola de Futebol' AND (preco < 20 OR preco > 100))
OR (nome_produto = 'Chocolate' AND (preco < 10 OR preco > 50))
OR (nome_produto = 'Celular' AND (preco < 80 OR preco > 5000))
OR (nome_produto = 'Livro de Ficção' AND (preco < 10 OR preco > 200))
OR (nome_produto = 'Camisa' AND (preco < 80 OR preco > 200));
-- Atualizar preços fora do intervalo para 'Bola de Futebol'
UPDATE produtos
SET preco = CASE
WHEN preco < 20 THEN 20
WHEN preco > 100 THEN 100
ELSE preco
END
WHERE nome_produto = 'Bola de Futebol';
-- Atualizar preços fora do intervalo para 'Chocolate'
UPDATE produtos
SET preco = CASE
WHEN preco < 10 THEN 10
WHEN preco > 50 THEN 50
ELSE preco
END
WHERE nome_produto = 'Chocolate';
-- Atualizar preços fora do intervalo para 'Celular'
UPDATE produtos
SET preco = CASE
WHEN preco < 80 THEN 80
WHEN preco > 5000 THEN 5000
ELSE preco
END
WHERE nome_produto = 'Celular';
-- Atualizar preços fora do intervalo para 'Livro de Ficção'
UPDATE produtos
SET preco = CASE
WHEN preco < 10 THEN 10
WHEN preco > 200 THEN 200
ELSE preco
END
WHERE nome_produto = 'Livro de Ficção';
-- Atualizar preços fora do intervalo para 'Camisa'
UPDATE produtos
SET preco = CASE
WHEN preco < 80 THEN 80
WHEN preco > 200 THEN 200
ELSE preco
END
WHERE nome_produto = 'Camisa';
Depois é só aplicar o comando Select do inicio para ver que não possuem mais produtos fora de preço. Dessa forma está aplicado corretamente?