Pular para o conteúdo
  • Este tópico contém 5 respostas, 4 vozes e foi atualizado pela última vez 12 anos, 3 meses atrás por Avatar de charlles_jrcharlles_jr.
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #104204
    Avatar de leo_jfleo_jf
    Participante

      boa tarde prezados,
      tenho uma query que rodava em oracle, mas preciso converter para sql simples, pois preciso que rode em qq banco, se é possivel rsrsr
      o final da query é:
      , row_number() over(partition by usuario order by matricula) RN
      FROM
      GERENCIAL)
      START
      WITH RN = 1
      CONNECT BY
      PRIOR RN = RN-1 AND PRIOR usuario = usuario
      GROUP BY
      usuario
      , matricula
      ORDER BY
      matricula
      seria possivel substituir essas funções? tipo row_number, start with, connect by..por similares
      qq dica seria bem vinda

      #104205
      Avatar de rmanrman
      Participante

        @leo_jf

        Pelo que parece é uma consulta de auto-relacionamento. Creio que cada banco possui uma sintaxe própria ou não tem suporte. Você pode criar uma VIEW, e para cada banco você implementa a VIEW da forma adequada.

        #104206
        Avatar de leo_jfleo_jf
        Participante

          fala rman,
          já tentei, mas não funcionou.
          eu preciso saber os equivalentes das funções mesmo, tipo CONNECT BY
          PRIOR RN = RN-1, qual seria o sql que me retornaria o mesmo resultado que esse comando. o povo fica trocando de banco e acha que tudo vai funcionar igual.rsrsr enfim faz parte do job.

          #104207
          Avatar de rmanrman
          Participante

            @leo_jf

            O que pode ser feito é implementar essa consulta na aplicação, utilizando apenas consultas do sql padrão.

            #104208
            Avatar de burgaburga
            Participante

              Dependendo do banco que você for usar, uma versão mais nova de qualquer SGBD deve dar suporte ao WITH recursivo, que é padrão SQL e consegue fazer o que o CONNECT BY faz.

              A princípio você vai levar uma horinha pra entender como funciona, mas depois que pega o jeito sai tudo tranquilo.

              Segue uns exemplos de como ele funciona:
              http://walkingoncoals.blogspot.com.br/2009/12/fun-with-recursive-sql-part-1.html

              Se ainda tiver alguma dúvida posta aqui que quando eu tiver um tempinho livre eu vejo melhor como resolver o seu problema específico. 8)

              #104211
              Avatar de charlles_jrcharlles_jr
              Participante

                Cara, ordenar do mesmo jeito que o CONNECT BY + PRIOR lhe proporciona não sei se vai conseguir, porém vc pode utilizar auto join para fazer o relacionamento entre “PAIS” e “FILHOS”

                abs

              Visualizando 6 posts - 1 até 6 (de 6 do total)
              • Você deve fazer login para responder a este tópico.
              plugins premium WordPress