Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> comp.databases.theory -> Re: Extracting Parent Model from Nested Sets Model

Re: Extracting Parent Model from Nested Sets Model

From: Flavio Botelho <nuncanada_at_ig.com.br>
Date: 23 Jan 2003 10:15:32 -0800
Message-ID: <de0df942.0301231015.9f2e9ee@posting.google.com>


Guessing from your query, i am extrapolating that maybe this way of updating next_child might work if "SET @next_child int" returns the int: '
  SELECT
(SET @next_child

      CASE 
        WHEN lft >= @next_child 
        THEN rgt+1 
        ELSE @next_child 
      END) AS next_child, '

Nuncanada

Snippet for test:

 CREATE TABLE Frammis
 (part CHAR(2) NOT NULL
  lft INTEGER NOT NULL,
  rgt INTEGER NOT NULL);  

 INSERT INTO Frammis VALUES ('A', 1, 30);
 INSERT INTO Frammis VALUES ('B', 2, 5);
 INSERT INTO Frammis VALUES ('C', 6, 21);
 INSERT INTO Frammis VALUES ('D', 22, 29);
 INSERT INTO Frammis VALUES ('E', 3, 4);
 INSERT INTO Frammis VALUES ('F', 7, 16);
 INSERT INTO Frammis VALUES ('F1', 17, 18);
 INSERT INTO Frammis VALUES ('G', 19, 20);
 INSERT INTO Frammis VALUES ('H', 23, 28);
 INSERT INTO Frammis VALUES ('I', 8, 9);
 INSERT INTO Frammis VALUES ('J', 10, 15);
 INSERT INTO Frammis VALUES ('K', 24, 25);
 INSERT INTO Frammis VALUES ('L', 26, 27);
 INSERT INTO Frammis VALUES ('M', 11, 12);
 INSERT INTO Frammis VALUES ('N', 13, 14);

BEGIN

  DECLARE @next_brother INTEGER;
  DECLARE @parent_left INTEGER;
  DECLARE @parent_right INTEGER;

  SET @parent_left = 7;
  SET @parent_right = 16;

  SET @next_child = @parent_left+1;  

  SELECT
(SET @next_child

      CASE 
        WHEN lft >= @next_child 
        THEN rgt+1 
        ELSE @next_child 
      END) AS next_child, 
      part AS parent

    FROM Frammis
    WHERE lft > @parent_left AND rgt < @parent_right     HAVING next_child = rgt+1
    ORDER BY lft;
END; Received on Thu Jan 23 2003 - 12:15:32 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US