A minha nova realidade profissional trouxe-me o contacto diário com o bem conhecido Sistema de Gestão de Base de Dados (SGBD) da Microsofot: Microsoft SQL Server.
Não é pretensão deste post tecer qualquer consideração sobre a comprovada qualidade deste motor, mas sim expôr uma situação no mínimo curiosa que, embora possa parecer irrelevante, representou um gasto de tempo de produção considerável.
Para os interessados em simular esta situação e para o decorrer deste post, propiciem um ambiente com a seguinte tabela:
1 2 3 4 5 | CREATE TABLE teste( resultado SMALLINT, valor1 FLOAT, valor2 FLOAT ) |
e com o registo:
1 | INSERT INTO teste (resultado,valor1,valor2) VALUES (0,175.1,35.02) |
O problema gira agora em torno das queries que se seguem:
1 2 | UPDATE teste SET resultado = valor1/valor2 SELECT (valor1/valor2) AS ValorEsperado, resultado AS ValorArmazenado FROM test |
