Ivan Martinez Postado 23 de Julho de 2007 Tópicos Que Criei: 49 Tópicos/Dia: 0.01 Meu Conteúdo: 219 Conteúdo/Dia: 0.03 Reputação: 2 Pontos/Conquistas: 1.587 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 52 Denunciar Compartilhar Postado 23 de Julho de 2007 (editado) Pessoal, Muitas vezes é necessário retornar apenas a linha 50, ou as linhas de 51 a 100 de determinado SELECT.Para fazer isso, segue exemplo abaixo : select * from ( select pfunc.chapa,pfunc.nome,ROW_NUMBER() OVER(ORDER BY chapa) AS Numero from pfunc where codfilial = 1 ) as x where numero >=300 and numero <=600 Atenção especial a instrução OVER, pois ela indicará como será feita a ordenação dos resultados.Isso influenciará diretamente nos registros que serão retornados.Uma coisa é os 50 primeiros registros de PFUNC ordenando por salário , outra bem diferente é ordenando por nome. Abraço a todos. Editado 25 de Julho de 2007 por Jairo Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Mauricio J. T. Postado 23 de Julho de 2007 Tópicos Que Criei: 134 Tópicos/Dia: 0.02 Meu Conteúdo: 1.225 Conteúdo/Dia: 0.19 Reputação: 2 Pontos/Conquistas: 7.400 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Dispositivo: Windows Denunciar Compartilhar Postado 23 de Julho de 2007 So que esta função nunca funcionou... ROW_NUMBER() ,nem no aplicativo, nem no query analizer. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Priscilinha Postado 23 de Julho de 2007 Tópicos Que Criei: 15 Tópicos/Dia: 0.00 Meu Conteúdo: 285 Conteúdo/Dia: 0.05 Reputação: 1 Pontos/Conquistas: 1.548 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 40 Dispositivo: Windows Denunciar Compartilhar Postado 23 de Julho de 2007 É pq é uma função específica do SQL SERVER 2005 tente assim: SELECT TOP 301 NOME FROM (SELECT TOP 600 NOME FROM PFUNC ORDER BY NOME) X ORDER BY NOME DESC Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Ivan Martinez Postado 24 de Julho de 2007 Tópicos Que Criei: 49 Tópicos/Dia: 0.01 Meu Conteúdo: 219 Conteúdo/Dia: 0.03 Reputação: 2 Pontos/Conquistas: 1.587 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 52 Autor Denunciar Compartilhar Postado 24 de Julho de 2007 Priscilinha, A alternativa que você deu permite a possibilidade de trazer apenas determinada linha ? Por exemplo, quero apenas a 50 ? Ou uma faixa de linhas, da 50 a 70 ? Obrigado. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Jair - Fórmula Postado 24 de Julho de 2007 Tópicos Que Criei: 902 Tópicos/Dia: 0.14 Meu Conteúdo: 8.855 Conteúdo/Dia: 1.34 Reputação: 311 Pontos/Conquistas: 106.701 Conteúdo Resolvido: 0 Dias Ganho: 196 Status: Offline Idade: 52 Dispositivo: Windows Denunciar Compartilhar Postado 24 de Julho de 2007 Ivan, é pra uso no SQL 2000 ou 2005 ? Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Priscilinha Postado 25 de Julho de 2007 Tópicos Que Criei: 15 Tópicos/Dia: 0.00 Meu Conteúdo: 285 Conteúdo/Dia: 0.05 Reputação: 1 Pontos/Conquistas: 1.548 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 40 Dispositivo: Windows Denunciar Compartilhar Postado 25 de Julho de 2007 tanto faz ivan aonde ta 600 é o limite superior e aonde ta 301 é o limite superior menos o limite inferior mais 1 Funciona tanto para um intervalo quanto para uma linha só Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Jairo Postado 25 de Julho de 2007 Tópicos Que Criei: 192 Tópicos/Dia: 0.03 Meu Conteúdo: 1.767 Conteúdo/Dia: 0.27 Reputação: 2 Pontos/Conquistas: 10.702 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Idade: 52 Denunciar Compartilhar Postado 25 de Julho de 2007 Priscilinha, A alternativa que você deu permite a possibilidade de trazer apenas determinada linha ? Por exemplo, quero apenas a 50 ? Ou uma faixa de linhas, da 50 a 70 ? Obrigado. Usando a mesma sentença criada pela Priscilinha ... Para trazer apenas a linha 50: SELECT top 1 NOME FROM (SELECT TOP 50 NOME FROM PFUNC ORDER BY NOME) X ORDER BY NOME DESC Para trazer da 50 até a 70: (Obs.: 50 ATÉ 70 = 21) SELECT * FROM (SELECT TOP 21 NOME FROM (SELECT TOP 70 NOME FROM PFUNC ORDER BY NOME) X ORDER BY NOME DESC ) YY ORDER BY NOME Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Carlos Henrique Lamenha Porfirio Postado 21 de Dezembro de 2007 Tópicos Que Criei: 0 Tópicos/Dia: 0 Meu Conteúdo: 3 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 15 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Denunciar Compartilhar Postado 21 de Dezembro de 2007 Só pra complementar, poderia ser assim: Trazendo os registros a partir do 21 SELECT TOP 10 NOME FROM PFUNC WHERE NOME NOT IN (SELECT TOP 20 NOME FROM PFUNC) ORDER BY NOME Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
ClaudioRM Postado 15 de Dezembro de 2008 Tópicos Que Criei: 11 Tópicos/Dia: 0.00 Meu Conteúdo: 33 Conteúdo/Dia: 0.01 Reputação: 0 Pontos/Conquistas: 275 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 47 Denunciar Compartilhar Postado 15 de Dezembro de 2008 Ja que estamos falando de SQL. Preciso de uma que retorne o penultimo salario do funcionário: SELECT CHAPA, DTMUDANCA, SALARIO FROM PFHSTSAL Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados
Participe da conversa
Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.