Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [Oracle SQL] CONNECT BY ... PRIOR ... START WITH

    Ciao a tutti, qualcuno sa come funziona la sintassi di queste istruzioni SQL per Oracle?
    :metallica

  2. #2

  3. #3
    viene utilizzata per prelevare i dati di una struttura gerarchica.
    Immagina di avere una tabella con varie righe, contenenti due campi: id_nodo e id_padre. Il campo id_padre punta al nodo padre del nodo corrente. Praticamente la tabella contiene i dati di un albero.
    Ad esempio
    codice:
    id_nodo   id_padre   descrizione
       0         null      root
       1          0        0.1
       2          0        0.2
       3          1        0.1.1
       4          3        0.1.1.1
       5          3        0.1.1.2
    rappresenta l'albero
    codice:
               0
              / \
             1   2
            /
           3
          / \
         4  5
    la query
    select id_nodo, level
    from tabella
    start with id_nodo=0
    conenct by prior id_nodo = id_parent

    ti restituisce tutta la discendenza del nodo 0, ovvero nell'ordine,
    codice:
    id_nodo    level
    0           0
    1           1
    3           2
    4           3
    5           3
    2           1
    level (parola chiave) ti restituisce la 'profondità' del nodo rispetto a quello di partenza.

    se inverti nella clausola connect by prior puoi risalire invece la gerarchia. Ad esempio se avessi scritto

    select id_nodo, level
    from tabella
    start with id_nodo=5
    conenct by prior id_parent = id_nodo

    il risultato sarebbe

    codice:
    id_nodo    level
    5           0
    3           1
    1           2
    0           3

    ciao


  4. #4
    Perfetto, grazie


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.