Solved

LISTAGG question

Posted on 2013-01-17
6
663 Views
Last Modified: 2013-01-22
I have a complex and sucessful query that that uses LISTAGG to show codes associated to a parent list.

My question is: can I use LISTAGG to produce and output a column with a specific number of delimiters.  I need to import this file into Excel for further processing, but the LISTAGG column needs 39 delimiters to process into 40 columns when imported into Excel regardless of the number of results.
0
Comment
Question by:rlinnabery
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
6 Comments
 
LVL 77

Expert Comment

by:slightwv (䄆 Netminder)
ID: 38790133
I'm not following what you are asking.

Are you asking how to produce a CSV with 40 columns no matter how many columns you have?

Are you wanting certain values in specific positions?

Can you post some sample data and expected results?
0
 
LVL 74

Accepted Solution

by:
sdstuber earned 500 total points
ID: 38790247
LISTAGG can't do that, but you can nest the query and use RPAD to create additional delimiters


SELECT owner, table_names || RPAD(',', 40 - cnt, ',')
  FROM (SELECT owner,
               COUNT(*) cnt,
               LISTAGG(table_name, ',') WITHIN GROUP (ORDER BY table_name) table_names
          FROM all_tables
         WHERE owner IN ('SCOTT', 'HR', 'OE', 'PM', 'SH')
        GROUP BY owner
        ORDER BY owner);
0
 

Author Closing Comment

by:rlinnabery
ID: 38793596
Thanks you, sdstuber.  I think this will accomplish exactly what I needed.
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 77

Expert Comment

by:slightwv (䄆 Netminder)
ID: 38793637
Mind if I ask why you needed trailing commas to load into Excel?

Excel should easily handle:
a,b,c
a

and not need:
a,b,c
a,,
0
 

Author Comment

by:rlinnabery
ID: 38799621
I am loading into a template that has twelve sections of up to 40 codes plus some other settings for the section.  I may have 1 or I may have 40 codes.  But I need them to take up the 40 cells when parsed into Excel so the next section starts in the proper cell for later input into a vba script after I make changes.  I used the listagg to minimize the columns in the query as it would be around 800 columns otherwise.  Hope that makes sense.
0
 
LVL 77

Expert Comment

by:slightwv (䄆 Netminder)
ID: 38805491
Thanks for the post back.

I've never used templates.  Guess I can add that to my to-do list.
0

Featured Post

On Demand Webinar: Networking for the Cloud Era

Ready to improve network connectivity? Watch this webinar to learn how SD-WANs and a one-click instant connect tool can boost provisions, deployment, and management of your cloud connection.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article started out as an Experts-Exchange question, which then grew into a quick tip to go along with an IOUG presentation for the Collaborate confernce and then later grew again into a full blown article with expanded functionality and legacy…
Background In several of the companies I have worked for, I noticed that corporate reporting is off loaded from the production database and done mainly on a clone database which needs to be kept up to date daily by various means, be it a logical…
This video shows information on the Oracle Data Dictionary, starting with the Oracle documentation, explaining the different types of Data Dictionary views available by group and permissions as well as giving examples on how to retrieve data from th…
This video shows how to configure and send email from and Oracle database using both UTL_SMTP and UTL_MAIL, as well as comparing UTL_SMTP to a manual SMTP conversation with a mail server.

724 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question