Ir para conteúdo
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×
Quer acesso a todas as Áreas do Fórum, até aquelas só para membros VIPs? Também quer poder baixar qualquer ARQUIVO? ×

Retornar determinada linha do resultado de SELECT


Ivan Martinez

Posts Recomendados


  • 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

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 por Jairo
Link para comentar
Compartilhar em outros sites


  • 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

So que esta função nunca funcionou...

ROW_NUMBER() ,nem no aplicativo, nem no query analizer.

Link para comentar
Compartilhar em outros sites


  • 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

É 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

Link para comentar
Compartilhar em outros sites


  • 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

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.

Link para comentar
Compartilhar em outros sites


  • 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

Ivan, é pra uso no SQL 2000 ou 2005 ?

Link para comentar
Compartilhar em outros sites


  • 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

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ó

Link para comentar
Compartilhar em outros sites


  • 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

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

Link para comentar
Compartilhar em outros sites

  • 4 meses depois...

  • 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

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

Link para comentar
Compartilhar em outros sites

  • 11 meses depois...

  • 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

Ja que estamos falando de SQL.

Preciso de uma que retorne o penultimo salario do funcionário:

SELECT

CHAPA, DTMUDANCA, SALARIO

FROM

PFHSTSAL

Link para comentar
Compartilhar em outros sites

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.

Visitante
Responder esse tópico

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.