Hmm, souynds like you want all the ruples returned, right? Then it's not
really a GROUP problem, just an ORDER BY one. If all your data follows
the example you gave, this should work:
reedstrm=# select * from fred order by text(num); num | name
--------+---------------------------------------- 15 | First Category Heading 1510 | first category subheading
1511| second category subheading 1560 | spurious category subheading156010 | first spurious category
subheading156011| second spurious category subheading 16 | Second Category Heading 1610 | Second category
subheading161010| Second category subheading subheading
(9 rows)
However, I _think_ your deeper question has to do with the indentation
part, right? Are you trying to indent based on category level? If you've got
some sort of programming language between your output and the SQL, then
something like:
reedstrm=# select text(num) as num ,length( text(num))/2 as level, name from fred order by text(num); num | level |
name
--------+-------+----------------------------------------15 | 1 | First Category Heading1510 | 2 |
firstcategory subheading1511 | 2 | second category subheading1560 | 2 | spurious category
subheading156010| 3 | first spurious category subheading156011 | 3 | second spurious category subheading16
| 1 | Second Category Heading1610 | 2 | Second category subheading161010 | 3 | Second category
subheadingsubheading
(9 rows)
Then use the 'depth' to output the proper indentation level.
Ross
--
Ross J. Reedstrom, Ph.D., <reedstrm@rice.edu>
NSBRI Research Scientist/Programmer
Computer and Information Technology Institute
Rice University, 6100 S. Main St., Houston, TX 77005
On Thu, Apr 20, 2000 at 02:28:01AM +0100, Tim Johnson wrote:
> Hello,
>
>
> My problem is I want to pull that data out and group it so that it comes out
> just the way it went in.. So my page can read:
>
> 15: First Category Heading
> 1510: first category subheading
> 1511: second category subheading
> 16: ... and so on..
>
>