Para trazer a consulta e analisar os valores, usei o seguinte comando:
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));
Para fazer a atualização, fiz da seguinte forma:
BEGIN TRANSACTION;
UPDATE produtos
SET Preco = CASE
WHEN nome_produto = 'Bola de Futebol' AND Preco < 20 THEN 20
WHEN nome_produto = 'Bola de Futebol' AND Preco > 100 THEN 100
WHEN nome_produto = 'Chocolate' AND Preco < 10 THEN 10
WHEN nome_produto = 'Chocolate' AND Preco > 50 THEN 50
WHEN nome_produto = 'Celular' AND Preco < 80 THEN 80
WHEN nome_produto = 'Celular' AND Preco > 5000 THEN 5000
WHEN nome_produto = 'Livro de Ficção' AND Preco < 10 THEN 10
WHEN nome_produto = 'Livro de Ficção' AND Preco > 200 THEN 200
WHEN nome_produto = 'Camisa' AND Preco < 80 THEN 80
WHEN nome_produto = 'Camisa' AND Preco > 200 THEN 200
ELSE Preco
END
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));
COMMIT;
Não me retornaram nenhum erro, estão corretas?