Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

store procedure to transpose rows to columns

120 views
Skip to first unread message

lenygold via DBMonster.com

unread,
Apr 21, 2008, 1:31:42 PM4/21/08
to
Chris Eaton created a SP to to transpose rows to columns :
Here is an example of a rowtocol stored proc that takes a SQL statement as
the first paramter, a delimiter as the second parameter and the ouput (in the
3rd parameter) is the rows coverted to a column with the delimiter specified
used to separate the row values.

CREATE PROCEDURE rowtocol
(IN p_slct VARCHAR(4000), IN p_dlmtr VARCHAR(4000), OUT lc_str VARCHAR(4000))
LANGUAGE SQL
BEGIN
DECLARE SQLSTATE CHAR(5);
DECLARE lc_colval VARCHAR(4000);
DECLARE c_refcur INT;
DECLARE at_end INT DEFAULT 0;

DECLARE not_found CONDITION FOR SQLSTATE '02000';

DECLARE C1 CURSOR FOR S1;
DECLARE CONTINUE HANDLER FOR not_found SET at_end = 1;

PREPARE S1 FROM p_slct;

SET lc_str = '';
OPEN C1;
fetch_loop:
LOOP
FETCH C1 INTO lc_colval;
IF at_end = 1 THEN LEAVE fetch_loop;
END IF;
SET lc_str = lc_str || p_dlmtr || lc_colval;
END LOOP;
CLOSE C1;
END

i have the following table:
INPUT_TABLE:

AGENT AMOUNT PRODUCT ORDER_ID
----- -------------------- --------------------------------------
AA 20 P1 1
BB 20 P1 1
XX 20 P1 1
BB 7 P2 2
CC 7 P2 2
CC 12 P2 3

How to call this SP to convert input_table rows into columns?
Thank's in advance. Leny G.

--
Message posted via http://www.dbmonster.com

jefftyzzer

unread,
Apr 21, 2008, 5:02:42 PM4/21/08
to

Not to detract from Chris's work, but you may want to investigate
instead using a recursive common table expression.

--Jeff

0 new messages