none
Selecionar intervalo de registros

    Question

  • Olá, pessoal

    pesquisei sobre esse assunto, porém não encontrei.. me desculpem se já tiver algo na comunidade a esse respeito...

    há tempo eu fico matutando sobre um possivel problema num futuro não muito distante:

    Faço consultas sql, com os devidos filtros, ordenação, etc... blz!

    Mas as vezes , para um determinado filtro, descrição por exemplo, exige-se que se ordene-se por DESCRICAO, de fato... se for algo como um " descricao like '%'

    ou, por exemplo, uma ordenação por data.

    Select * from NotasFiscais where data >= '25/09/2003'

    feito isso, vai me retornar muitos registros

     

    hoje eu não tenho problemas, pois o banco de dados está pequeno

    mas sera que posso vir a te-los no futuro?

    visto que em varias situações o servidor de aplicativo está longe do banco de dados, a conexão eh meio lenta, posso me complicar??

     

    Para mostrar os dados num datagrid, de 1-15, 16-30, 31-45... isso blz!

    mas O BD vai continuar retornado uma grande massa de dados.. então, o que eu queria era saber se tem como fazer algo assim, que retorne um intervalo de valores:

    Select top 10 - 20 * from NotasFiscais...

    de acordo com a paginação do grid..

    não sei se fui claro??

    Obrigado pela atenção!!! t+

     

    Julio

    Monday, September 25, 2006 4:52 PM

All replies

  • olá julio

    para utilizar entre intervalos de valores use assim

    SELECT * FROM TABELA
    WHERE CAMPO BETWENN 10 AND 100

     

    SELECT * FROM TABELA
    WHERE CAMPODATA BETWENN '2006-01-01' AND '2006-12-01'

     

     

    Monday, September 25, 2006 5:01 PM
  • Olá Julio,

          Se vc estiver usando SQL Server 2005 poderá fazer uso da Função Rank.

    Att
    Henrique Gurgacz


    Monday, September 25, 2006 5:12 PM
  • Julio,

     

    Também no SQL Server 2005 você pode utilizar a função Row_Number() além da Rank.

     

    Procure no books on-line do SQL Server 2005, mas detalhes sobre as funções de Rank.

    Monday, September 25, 2006 5:17 PM
  • ow, legal!

     

    mas esses rank e row_number, só no 2005 então?? estou usando o 2000 por enquanto...

    bem, de qualquer forma, vale a opção do amigo que falou between, é uma "gambiarra", mas funciona para o que eu preciso....

    valeu!

    Monday, September 25, 2006 7:11 PM
  • Amigo Julio  se vc não quer gambiarra rsss da uma olhada nesse artigo em meu site que mostro um exemplo de como simular a função row_number no SQL Server 2000

    (Numerando as Linhas de sua Tabela como Coluna no SQL Server 2000 e SQL Server 2005 )
    http://www.msit.com.br/publicacaoDetalhes.aspx?id=31

    (Paginando Result Sets no SQL Server 2005 usando a função Row_Number() )
    http://www.msit.com.br/publicacaoDetalhes.aspx?id=65

    abs

    Monday, September 25, 2006 7:29 PM