Artigo: 186133 - Última revisão: terça-feira, 14 de Fevereiro de 2006 - Revisão: 5.4 Como dinamicamente numerar linhas numa instrução Transact-SQL SELECT
Nesta páginaSumárioEste artigo descreve como classificar dinamicamente linhas quando executa uma instrução SELECT utilizando um método flexível, que pode ser a solução só é possível e que é mais rápida do que a solução de procedimento. Linha numeração ou classificação é um problema de procedimento normal. As soluções baseiam-se normalmente no ciclos e tabelas temporárias; por conseguinte, baseiam-se do SQL Server ciclos e cursores. Esta técnica baseia-se uma associação automática. A relação seleccionada é normalmente "é maior que". Contar quantas vezes cada elemento de um determinado conjunto de dados tem a relação "é maior que" quando o conjunto é comparado a próprio. Nota Os exemplos seguintes baseiam-se a base de dados pubs . Por predefinição, a base de dados de exemplo Adamastor e a dados de exemplo pubs não estão instalados no SQL Server 2005. Estas bases de dados podem ser transferidos a partir do Centro de transferências da Microsoft. Para mais informações, visite o seguinte Web site da Microsoft: http://go.microsoft.com/fwlink/?linkid=30196
(http://go.microsoft.com/fwlink/?linkid=30196)
Depois de transferir SQL2000SampleDb.msi, extraia os scripts de base de dados de exemplo fazendo SQL2000SampleDb.msi. Por predefinição, SQL2000SampleDb.msi irá extrair os scripts de base de dados e um ficheiro Leiame para a seguinte pasta:Bases de dados de C:\SQL Server 2000 exemplo Siga as instruções no ficheiro readme para executar os scripts de instalação. Se estiver a utilizar o SQL Server 2005Recomendamos que utilize funções de classificação que são fornecidas como uma nova funcionalidade do SQL Server 2005. Para mais informações sobre as funções de classificação, visite o seguinte Web site da Microsoft Developer Network (MSDN):http://msdn2.microsoft.com/en-us/library/ms189798.aspx
(http://msdn2.microsoft.com/en-us/library/ms189798.aspx)
Exemplo 1neste exemplo:
Rank Au_Lname Au_Fname
---- -------------- -----------
1 Bennet Abraham
2 Blotchet-Halls Reginald
3 Carson Cheryl
4 DeFrance Michel
5 del Castillo Innes
6 Dull Ann
7 Greene Morningstar
8 Green Marjorie
9 Gringlesby Burt
10 Hunter Sheryl
11 Karsen Livia
12 Locksley Charlene
13 MacFeather Stearns
14 McBadden Heather
15 O'Leary Michael
16 Panteley Sylvia
17 Ringer Albert
18 Ringer Anne
19 Smith Meander
20 Straight Dean
21 Stringer Dirk
22 White Johnson
23 Yokomoto Akiko
(23 row(s) affected)
Exemplo 2Neste exemplo:
Rank Stor_Id Qty ---- ------- --- 1 6380 8 2 7896 120 3 8042 240 4 7067 360 5 7066 625 6 7131 780 (6 row(s) affected) Utilize o seguinte código no SQL Server 2005. rank stor_id qty ------- ------- ------ 1 7131 130 2 7066 125 3 7067 90 4 8042 80 5 7896 60 6 6380 8 (6 row(s) affected) Exemplo 3Neste exemplo:
Rank Pub_Id Sales ---- ------ -------- 1 0736 1,961.85 2 0877 4,256.20 3 1389 7,760.85 (3 row(s) affected) Utilize o seguinte código no SQL Server 2005. rank pub_id sales ------- ------ --------- 1 1389 2586.95 2 0877 2128.10 3 0736 1961.85 (3 row(s) affected) Desvantagens
Rank Title_Id Qty ---- -------- ---- 1 MC2222 10 4 BU1032 60 4 BU7832 60 4 PS3333 60 7 PS1372 140 7 TC4203 140 7 TC7777 140 10 BU1111 250 10 PS2106 250 10 PS7777 250 11 PC1035 330 12 BU2075 420 14 MC3021 560 14 TC3218 560 15 PC8888 750 16 PS2091 1728 (16 row(s) affected) Vantagens
Publisher Earnings
------------- --------
0736 : 1,961.85
0877 : 4,256.20
1389 : 7,760.85
publisher earnings
-------------------- ---------------------
0736 : 1961.85
0877 : 2128.10
1389 : 2586.95
(3 row(s) affected)exemplo 2 :
Book Qty
------------------------------------------- ----
MC2222 : 10
BU1032 : 60
BU7832 : 60
PS3333 : 60
PS1372 : 140
TC4203 : 140
TC7777 : 140
BU1111 : 250
PS2106 : 250
PS7777 : 250
PC1035 : 330
BU2075 : 420
MC3021 : 560
TC3218 : 560
PC8888 : 750
PS2091 : 1728
(16 row(s) affected)
Book qty
--------------------------------------------- -----------
MC2222 : 10
BU1032 : 15
BU7832 : 15
PS3333 : 15
TC4203 : 20
TC7777 : 20
PS1372 : 20
BU1111 : 25
PS7777 : 25
PS2106 : 25
PC1035 : 30
BU2075 : 35
MC3021 : 40
TC3218 : 40
PC8888 : 50
PS2091 : 108
(16 row(s) affected)
A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado. Clique aqui para ver a versão em Inglês deste artigo: 186133
(http://support.microsoft.com/kb/186133/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesObtenha Ajuda AgoraTraduções de Artigos
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Voltar ao topo