2
respostas

Desafio: ajuste de valores em bases de produtos

Gostaria de entender por que os preços não deram certo, a função random() gera um valor entre 0 e 1, não estou entendo como é possivel random()*80 gerar um valor tão grande (quando deveria gerar 0 a 80) e também alguns valores negativos.

print da consulta

2 respostas

cheguei nos valores dentro do intervalo mas não com as casas decimais

consulta

Oii, Guilherme! Como você está?

A função RANDOM() no SQLite não gera um valor entre 0 e 1. Ele gera um valor inteiro aleatório entre -9223372036854775808 e +9223372036854775807. Então, ao usar RANDOM() * 80, o retorno com valores serão grandes ou negativos. Leia mais no link abaixo:

A página abrirá em inglês, para fazer a leitura em português, clique com o botão direito do mouse em qualquer canto da página e escolha a opção traduzir para o português.

E na segunda imagem, você está no caminho certo, é isso mesmo! Sobre não estar retornando um valor decimal, é possível que a tabela não esteja no tipo decimal. Então, recomendo que altere o tipo para um que aceite valores decimais com o comando:

ALTER TABLE produtos
MODIFY COLUMN preco DECIMAL(10, 2);

Espero ter ajudado. Conte sempre conosco aqui no fórum.

Bons estudos e até mais!