Questão de Banco de Dados — SQL Server — Quadrix 2025
- Código
- qg600022
- Banca
- Quadrix
- Órgão
- CRO-SP
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista de Desenvolvimento de Sistemas de Informação
- CCerto
- EErrado
GabaritoC — Certo
Gabarito: CERTO. A instrução SELECT TOP 10 * FROM Consultas é válida no SQL Server e retorna as dez primeiras linhas da tabela, sem exigir uma cláusula ORDER BY — o TOP limita o número de linhas retornadas, e a ordenação, quando presente, apenas define quais linhas serão as "primeiras". A sintaxe TOP é uma extensão proprietária do SQL Server (T-SQL), não fazendo parte do padrão SQL/ANSI, que utiliza FETCH FIRST ou LIMIT em outros SGBDs.
O comando SELECT TOP é um dos recursos mais cobrados em provas sobre SQL Server, justamente por essa característica: ele não depende de ORDER BY para funcionar. A cláusula ORDER BY é opcional e serve para ordenar o resultado; sem ela, o SGBD retorna as linhas na ordem em que as encontra (geralmente a ordem física de armazenamento, mas isso não é garantido). Portanto, a afirmação do enunciado está correta: é possível listar as dez primeiras consultas sem ordenação explícita.
É importante distinguir o TOP do LIMIT (MySQL, PostgreSQL) e do FETCH FIRST (padrão SQL:2008, usado no PostgreSQL e no DB2). Enquanto LIMIT e FETCH FIRST também não exigem ORDER BY, o TOP é específico do SQL Server e do Access. A banca explora exatamente essa diferença: muitos candidatos confundem e acham que TOP exige ORDER BY, ou que é um comando padrão SQL.
Na prática, se a tabela Consultas tiver, por exemplo, 50 registros, SELECT TOP 10 * FROM Consultas retornará 10 linhas quaisquer — sem garantia de quais serão, a menos que se adicione ORDER BY. Isso é útil para limitar o volume de dados em consultas de teste ou para paginação, mas não substitui a ordenação quando a ordem importa.
A pegadinha clássica é inverter a relação: a banca pode afirmar que TOP exige ORDER BY, o que é falso. O ORDER BY apenas determina a prioridade das linhas; sem ele, o TOP ainda funciona, retornando linhas em ordem arbitrária. Guarde essa distinção: TOP limita, ORDER BY ordena — são cláusulas independentes.
A instrução SELECT TOP 10 * FROM Consultas é perfeitamente válida no SQL Server e retorna as dez primeiras linhas da tabela, sem depender de ORDER BY. O TOP é uma cláusula de limitação de linhas, e a ordenação é opcional. Se houver ORDER BY, o TOP retorna as dez primeiras linhas segundo essa ordem; sem ela, retorna dez linhas em ordem arbitrária. Portanto, a afirmação está correta.
SQL Server (T-SQL):
SELECT TOP 10 * FROM Consultas;— retorna as 10 primeiras linhas, sem exigirORDER BY.
Gabarito: CERTO.
Link permanente: /questoes/qg600022