SQL Server 2012 – Simulado para a prova 70-461 – Parte 3
Fala Pessoal,
Demorei um pouco para fazer outro post dessa prova pois meu serviço de consultoria está a todo vapor e o tempo está curto.
Segue mais um simulado com 5 questões para a Prova 70-461 – Querying Microsoft SQL Server 2012/2014
1) Quando uma query não tem uma cláusula ORDER BY, em que ordem as linhas são retornadas?
A – Ordem Arbitrária
B – Ordem da Primary Key
C – Ordem do índice clustered
D – Ordem de insert
2) Você deseja ordenar uma query pela coluna Orderdate ascendente e pela coluna orderid ascendente. Qual das seguintes cláusulas retorna o que você quer?
A – ORDER BY ASC (orderdate, orderid)
B – ORDER BY orderdate, orderid ASC
C – ORDER BY orderdate ASC, orderid ASC
D – ORDER BY orderdate, orderid
3) Qual o benefícios de usar OFFSET-FETCH ao invés da cláusula TOP?
A – Nenhum, a TOP tem a capacidade de pular registros e a OFFSET-FETCH não.
B – OFFSET-FETCH tem a capacidade de pular registros e a TOP não.
C – Todas as alternativas estão erradas
4) Você escreve uma query com a opção TOP (3). Qual das seguintes opções descreve mais precisamente quantas linhas serão retornadas?
A – Menos de 3 linhas
B – 3 linhas ou menos
C – 3 linhas
D – 3 linhas ou mais
E – Mais de 3 linhas
F – Menos de 3 linhas, 3 linhas ou mais de 3 linhas.
5) Você escreve uma query com a opção TOP (3) WITH TIES com uma ordem não única de dados. Qual das seguintes opções descreve mais precisamente quantas linhas serão retornadas?
A – Menos de 3 linhas
B – 3 linhas ou menos
C – 3 linhas
D – 3 linhas ou mais
E – Mais de 3 linhas
F – Menos de 3 linhas, 3 linhas ou mais de 3 linhas.
Posts Relacionados:
Material para as certificações MCSA e MCSE do SQL Server 2012/2014
SQL Server 2012 – Simulado para a prova 70-461 – Parte 1
SQL Server 2012 – Simulado para a prova 70-461 – Parte 2
Gostou desse Post?
Curta, comente, compartilhe…
Assine meu canal no Youtube e curta minha página no Facebook para receber Dicas de Leituras, Vídeos e Eventos sobre SQL Server.
Confira mais informações sobre essa e outras Certificações na página Materiais para Certificação.
Até a próxima.
Fabrício Lima
MCITP – Database Administrator
Consultor e Instrutor SQL Server
Trabalha com SQL Server desde 2006
Seguem abaixo as respostas desse simulado:
1) A
Sem uma cláusula ORDER BY, a ordenação de uma query não é garantida e devemos considerar que ela é arbitrária. Depende do tipo de otimização que o SQL pode usar.
2) B, C e D
A sintaxe da letra A está incorreta.
3) B
4) B
Sem a opção WITH TIES, a query não retorna mais do que o valor especificado. Logo todas as respostas com mais de 3 linhas estão erradas.
5) F
Com a opção WITH TIES, uma query pode retornar mais registros que o valor especificado na cláusula TOP.
Olá, Fabrício! Não entendi a resposta da questão número 5, imaginei que retornaria sempre registros a mais, uma vez que dependendo do campo utilizado na cláusula order by, irá trazer sempre trazer registros cujo valor do campo usado no order by seja igual. Como é possível trazer menos de 3 linhas, como citado na alternativa 5)F? Vide artigo: http://www.diegonogare.net/2012/07/aprimorando-o-resultado-da-consulta-com-top-with-ties-no-sql-server-2012/
Olá Luciana,
Para esclarecer a sua dúvida basta você pensar na seguinte situação:
O filtro utilizado na query retorna menos de 3 linhas. Por exemplo, quando a tabela tem apenas 2 registros, 1 registro ou até mesmo nenhum (essa é uma pegadinha rsrsrs).
Pode trazer 3 linhas quando o valor da coluna do order by não se repetir.
Pode trazer mais de 3 linhas quando o valor da coluna do order by se repetir.
Portanto, a resposta mais correta seria a letra F. Ficou mais claro dessa forma?
F – Menos de 3 linhas, 3 linhas ou mais de 3 linhas.
Abraço e bons estudos!
Olá, Fabrício. Perfeito, entendi 😀
SEM a cláusula WITH TIES, o SELECT retorna exatamente o valor especificado em TOP (?) ou menos, pois a tabela poderá ter menos registros do que o especificado na cláusula TOP ou nenhum registro. Mas quando usamos o recurso WITH TIES (em situações bem específicas), o conjunto de registros resultante passa por um filtro extra e, dependendo do conteúdo da tabela irá trazer o valor especificado na clausula TOP(?) e os registros coincidentes com o último registro retornado na cláusula TOP conforme campo na cláusula ORDER BY.
Ex.: sei que a tabela de PRODUTOS tem muitos itens. Fiz um TOP 3 de DESCRICAO e PREÇO ordenado por PRECO. Vi que retornou BOLSA, MALA e SAPATO, nesta ordem. Agora, gostaria de saber quais itens tem o mesmo preço que o SAPATO. Então, faria: SELECT TOP(3) WITH TIES DESCRICAO, PRECO FROM PRODUTOS ORDER BY PRECO. Está correto?
Em tempo… select top(3) with ties [lista de campos] from [tabela] order by [coluna ordenação] = 3 linhas, menos de 3 linhas ou mais de 3 linhas (como na questão 5F). Tudo vai depender da quantidade de registros na tabela que atendam a condição do resultset.
Olá Luciana,
O seu raciocínio está correto. Parabéns! Nesse caso específico, o uso do WITH TIES irá retornar todos os outros produtos que possuem o mesmo preço do sapato. Caso a consulta retorne apenas os mesmos registros (BOLSA, MALA e SAPATO), isso quer dizer que não existe nenhum outro produto com o mesmo preço do sapato.
Abraço e bons estudos.
Tks \o/
Muito bom esse blog.
Obrigado Andressa.