MINHA RESPOSTA:
SELECT ROWNUM, NOTAS_FISCAIS.* FROM NOTAS_FISCAIS WHERE ROWNUM <=10 AND DATA_VENDA = '01/10/2017';
RESPOSTA DO EXERCÍCIO:
SELECT * FROM NOTAS_FISCAIS WHERE DATA_VENDA = TO_DATE('2017-01-01','YYYY-MM-DD') AND ROWNUM <= 10;
MINHA RESPOSTA:
SELECT ROWNUM, NOTAS_FISCAIS.* FROM NOTAS_FISCAIS WHERE ROWNUM <=10 AND DATA_VENDA = '01/10/2017';
RESPOSTA DO EXERCÍCIO:
SELECT * FROM NOTAS_FISCAIS WHERE DATA_VENDA = TO_DATE('2017-01-01','YYYY-MM-DD') AND ROWNUM <= 10;
Oi Luis, como você está?
Peço desculpas por demorar a te responder.
Sua resposta está correta! Em SQL, temos muitas formas de chegar a um mesmo resultado. O importante é que você compreenda a lógica e as ferramentas que a linguagem nos oferece e consiga solucionar problemas através delas.
As diferenças estão na ordem das declarações lógicas e na utilização da função ROWNUM
para retornar o número da linha, o que não tem nenhum problema.
Além disso, você usou outro formato de fata ('01/10/2017'), que pode ser ambíguo. Dependendo das configurações regionais do banco de dados, a interpretação dessa data pode variar. Portanto, é recomendável usar um formato de data padronizado como a da resposta do exercício com a função TO_DATE que converte uma string em uma data. A expressão TO_DATE('2017-01-01','YYYY-MM-DD') retorna a data no formato correto ('2017-01-01') para comparar com a coluna DATA_VENDA. Essa abordagem é mais robusta e menos propensa a erros de interpretação da data. É importante atentar-se a isso quando lidar com uma grande quantidade de dados, mas no projeto que estamos utilizando na aula, a padronização das datas já é conhecida.
Espero ter colaborado :)
Abração!