Ordenação no CONNECT BY PRIOR

Scripts Diversos para o Oracle SQL*Plus. (Relacionado a ferramenta Oracle SQL*Plus, para questões de SQL, usar o forum SQL)
Responder
aoliveira
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 11
Registrado em: Seg, 24 Out 2005 11:46 am
Localização: Blumenau-SC
[ Alex ]

Bom dia!

Pessoal, não estou conseguindo resolver um problema de ordenação que estou tento, o select que estou executando é o seguinte

Selecionar tudo

SELECT LPAD(cd_material, LENGTH(cd_material) + ((LEVEL - ) * 4), ' ') cd_material
                 ,rownum
      FROM qs_w_estrutura_material
   WHERE LEVEL > 1
   AND LEVEL <= NVL((null + 1), LEVEL)
    START WITH cd_mat_estrut_pai IS NULL
                   AND nr_solicitacao = 100362
                   AND id_estrutura = 1
   CONNECT BY PRIOR cd_mat_estrut = cd_mat_estrut_pai
                  AND nr_solicitacao = 100362
                  AND id_estrutura = 1
   order by rownum
O resultado não é exatamente o que eu esperava pois para alguns registros não esta ordenando de forma correta.

Segue parte do resultado, onde mostra que o registro 0000/00003 esta na possição incorreta, este deveria estar logo abaixo do registro 0000/00002.

Selecionar tudo

    4000/12800                  95
        4000/02800              96
            0000/00002          97
            0000/00204          98
            0000/00206          99
            0001/00215         100
            0002/00115         101
            0002/00117         102
            0002/00126         103
            0002/00203         104
            0002/00214         105
            0002/00233         106
            0003/00140         107
            0003/00225         108
            0004/00005         109
            0005/00015         110
            0006/00102         111
            0009/00147         112
            0011/00291         113
            0011/00292         114
            0012/00009         115
            1012/00011         116
            1014/00036         117
            1015/00010         118
            0000/00003         119
    4055/10253                 120
        4055/00253             121
            1025/00905         122
    4056/00089                 123
        4056/00089K            124
            1025/00965         125
Pessoal se alguém já passou por isso e puder dar uma dica agradeço.

Abraços
aoliveira
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 11
Registrado em: Seg, 24 Out 2005 11:46 am
Localização: Blumenau-SC
[ Alex ]

Pessoal acho que assim fica melhor de verificar o que estou relatando devido a identificação dos niveis

Selecionar tudo

    4000/12800                  95
        4000/02800              96
            0000/00002          97
            0000/00204          98
            0000/00206          99
            0001/00215         100
            0002/00115         101
            0002/00117         102
            0002/00126         103
            0002/00203         104
            0002/00214         105
            0002/00233         106
            0003/00140         107
            0003/00225         108
            0004/00005         109
            0005/00015         110
            0006/00102         111
            0009/00147         112
            0011/00291         113
            0011/00292         114
            0012/00009         115
            1012/00011         116
            1014/00036         117
            1015/00010         118
            0000/00003         119
    4055/10253                 120
        4055/00253             121
            1025/00905         122
    4056/00089                 123
        4056/00089K            124
            1025/00965         125
valeu
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 14 visitantes