Top cláusula no sql server com exemplos

longa-sql1

Na maioria das vezes, na vida real, nós tentamos encontrar as três melhores pontuações em uma classe, os cinco principais corredores em uma maratona, ou as 10 metas do mês. servidor SQL tem um recurso para selecionar o TOP n registros de uma tabela.

Podemos recuperar o TOP n registros de uma tabela sem usar uma cláusula WHERE. TOP também pode ser usado com instruções DML tais como atualizar e excluir. Na maioria das vezes, para cima é usado com uma cláusula ORDER BY para classificar os resultados pela primeira vez em ordem crescente ou decrescente e, em seguida, para buscar o TOP n registros. Uma cláusula ORDER BY com TOP torna-se de que ter resolvido os dados de uma tabela.

TOP é usado como um limitador de linha no servidor SQL, assim como LIMIT no MySQL.

Vamos dar uma olhada em um exemplo de TOP usada em uma tabela.

Criar tabela SSCResults (Id INT IDENTITY (1,1) CHAVE PRIMÁRIA, nome VARCHAR (100), pontuação numérica (18,2)) - INSERT INTO SSCResults VALUES ( `Shailesh A`, 98,0) -INSERT INTO SSCResults VALUES ( `Atul K `, 90,0) -INSERT INTO SSCResults VALUES (` Vishal P `, 89,0) -INSERT INTO SSCResults VALUES (` Naryan N `, 88,0) -INSERT INTO SSCResults VALUES (` Rohit G `, 88,0) -INSERT INTO SSCResults VALUES ( `Varsha K`, 85,0) -INSERT INTO SSCResults VALUES ( `Sangram K`, 83,0) -INSERT INTO SSCResults VALUES ( `Vish K`, 79,0) -Selecione * FROM SSCResults-


SQL_Server_Top_Clause_Screenshot1

Exemplo 1 - Seleção TOP n Records em SQL Server: Encontrar as três melhores marcadores em uma tabela SSCResults

Uma maneira rápida de encontrar este é para classificar a coluna Índice em ordem decrescente e selecionar os três melhores registos.

SELECT TOP 3 * FROM SSCResultsORDER BY DESC Pontuação


A consulta acima tem resolvido o campo Avaliação de a maior pontuação para a pontuação mais baixa primeiro e, em seguida, ele selecionou os três melhores pontuações. SELECT * indica queremos recuperar todas as colunas da tabela SSCResults.



SQL_Server_Top_Clause_Screenshot2

Exemplo 2 - Cubra com Gravatas: Lidar com valores amarrados

Quando consultar a tabela de SSCResults, vemos Id = 4 e Id = 5 tem a mesma pontuação. Neste caso, se eu buscar os quatro primeiros registros da tabela SSCResults com base na coluna Score, Id = 5 não iria aparecer na lista porque o Top condição 4 registros não está configurado para lidar com um cenário de empate.

Vamos consultar os quatro primeiros registros da tabela SSCResults.

SELECT TOP 4 * FROM SSCResults


Nós não ver que Id = 5 tem a mesma pontuação que Id = 4 nos resultados acima porque não lidar com um cenário de empate. Para obter o Id = 5 registro, é preciso usar TOP com laços.

SELECT TOP 4 com laços * FROM SSCResultsORDER BY DESC Pontuação


SQL_Server_Top_Clause_With_Ties_Screenshot3

Top Noel com instruções UPDATE e DELETE



Exemplo 3 - Atualizando Top 3 registros em uma tabela: Atualize os três primeiros registros em uma tabela

Vamos atualizar a pontuação das 3 melhores marcadores 0,5 por cento.

Nós não podemos usar Ordenar por diretamente com uma instrução Update. Precisamos usar uma subconsulta para selecionar os três melhores registos e, em seguida, atualizar.

atualizar SSCResultssetScore = Score + 0.5where ID em (selecione top 3 idFrom SSCResultsorder por desc pontuação) -


A consulta acima irá executar a subconsulta primeiro a selecionar os três melhores ids (três Artilheiros), e, em seguida, ele irá atualizar a sua pontuação através da adição de 0,5 por cento.

select * from SSCResultsorder por desc pontuação


Podemos ver que porcentagens dos três melhores pontuações `foram actualizadas em 0,5 por cento.

Exemplo 4 - Excluindo os Top 3 registros em uma tabela: Eliminar as três pontuações mais baixas da mesa

DELETE FROM SSCResultswhere ID em (selecione top 3 idFrom SSCResultsorder pela ASC pontuação) -


Primeiro, a subconsulta vai buscar as pontuações mais baixas dos SSCResults de mesa, e uma consulta externa vai apagar esses registros com base na identificação produzido pela subconsulta.

SQL_Server_Top_Clause_Delete

» » Top cláusula no sql server com exemplos