Return-Path: <ml-errors@fatcity.com>
Received: from ensim.rackshack.net (root@localhost)
 by orafaq.net (8.11.6/8.11.6) with ESMTP id h8PIiOS19441
 for <oracle-l@orafaq.net>; Thu, 25 Sep 2003 13:44:24 -0500
X-ClientAddr: 66.27.56.212
Received: from www3.fatcity.com (rrcs-west-66-27-56-212.biz.rr.com [66.27.56.212])
 by ensim.rackshack.net (8.11.6/8.11.6) with ESMTP id h8PIiLc19426
 for <oracle-l@orafaq.net>; Thu, 25 Sep 2003 13:44:23 -0500
Received: (from root@localhost)
 by www3.fatcity.com (8.11.6/8.11.6) id h8PG5W816479
 for oracle-l@orafaq.net; Thu, 25 Sep 2003 09:05:32 -0700
Received: by fatcity.com (05-Jun-2003/v1.0g-b73/bab) via fatcity.com id 005D10F1; Thu, 25 Sep 2003 09:04:53 -0800
Message-ID: <F001.005D10F1.20030925090453@fatcity.com>
Date: Thu, 25 Sep 2003 09:04:53 -0800
To: Multiple recipients of list ORACLE-L <ORACLE-L@fatcity.com>
X-Comment: Oracle RDBMS Community Forum
X-Sender: Mike Spalinger <Michael.Spalinger@Sun.COM>
Sender: ml-errors@fatcity.com
Reply-To: ORACLE-L@fatcity.com
Errors-To: ML-ERRORS@fatcity.com
From: Mike Spalinger <Michael.Spalinger@Sun.COM>
Subject: Re: SQL Query
Organization: Fat City Network Services, San Diego, California
X-ListServer: v1.0g, build 73; ListGuru (c) 1996-2003 Bruce A. Bergman
Precedence: bulk
Mime-Version: 1.0
Content-type: text/plain; format=flowed; charset=us-ascii
Content-transfer-encoding: 7bit

Imran,

Tom Kyte has a thread that might help:
http://asktom.oracle.com/pls/ask/f?p=4950:8:1554835115460038644::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:229614022562,

Essentially, you can do this:

CREATE or replace FUNCTION CONCAT_LIST( cur SYS_REFCURSOR )
   RETURN  VARCHAR2 IS
     ret VARCHAR2(32000);
     tmp VARCHAR2(4000);
BEGIN
     loop
         fetch cur into tmp;
         exit when cur%NOTFOUND;
             ret := ret || ' ' || tmp;
     end loop;
     RETURN ret;
END;
/

SQL> select * from mike;

         ID TEXT             ORDR
---------- ---------- ----------
          1 B                   2
          1 A                   1
          1 C                   3

SELECT id, SUBSTR(CONCAT_LIST(CURSOR(
    SELECT text
       FROM (select id, text, ordr from mike order by ordr) ee
       WHERE e.id = ee.id)),1,40) list
FROM ( select distinct id from mike) e;

         ID LIST
---------- --------------------
          1  A B C

Mike


Imran Ashraf wrote:
> Hi,
> 
> I have the following data , table Temp
> 
> ID  Text   Order
> 1     B        2
> 1     A        1
> 1     C        3
> 
> 
> I want to write a query which says: wherever there is more than 1 occurrence
> of ID then  concatenate the text in the order specified in the order column.
> So i would get:
> 
> ID  Text
> 1     A B C
> 
> Any suggestions?
> 
> Thanks
> 
> Imran


-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Mike Spalinger
  INET: Michael.Spalinger@Sun.COM

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru@fatcity.com (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

