oracle查询使用','连接所有列 [英] oracle query Concatenate all the columns with ','

查看:172
本文介绍了oracle查询使用','连接所有列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我的代码是:

$

我使用HR Schema,我想用','连接所有列。 b
$ b

  SELECT employee_id || ','|| first_name || ','||姓氏|| ','||电子邮件|| ','|| phone_number || , || job_id || ','|| manager_id || ','|| hire_date || ','
||工资|| ','|| commission_pct || ','|| department_id

THE_OUTPUT FROM employees;

有没有更好的方法(例如使用listagg函数)?
我想如果表有1000列我不能做到上面的

非常感谢












然后使用 SQL * Plus 命令并生成所需的输出。这是关于格式化的输出。


$ b

  • SQL * Plus



例如,

  SQL> SET colsep,
SQL> SET pagesize 20
SQL> SET trimspool ON
SQL> SET linesize 200
SQL> SELECT * FROM hr.employees WHERE ROWNUM< = 10;

EMPLOYEE_ID,FIRST_NAME,LAST_NAME,EMAIL,PHONE_NUMBER,HIRE_DATE,JOB_ID,SALARY,COMMISSION_PCT,MANAGER_ID,DEPARTMENT_ID
-----------,----- ---------------,-------------------------,-------- -----------------,--------------------,---------, - ---------,----------,--------------,----------,--- ----------
100,Steven,King,SKING,515.123.4567,17-Jun-03,AD_PRES,24000,,90
101,Neena,Kochhar,NKOCHHAR ,515.123.4568,21-SEP-05,AD_VP,17000,10000 90 b $ b 102,Lex,De Haan,LDEHAAN,515.123.4569,13-JAN-01,AD_VP,17000,10000
103,Alexander,Hunold,AHUNOLD ,590.423.4567,03-JAN-06,IT_PROG,9000,102,60 $ b $ 104,布鲁斯,恩斯特,BERNST,590.423.4568,2008年5月21日,IT_PROG,6000,,103,60
105,David,Austin,DAUSTIN,590.423.4569,25-JUN-05,IT_PROG,4800,103,60 $ b $ 106,Valli,Pataballa,VPATABAL,590.423.4560,05-FEB-06 ,IT_PROG,4800,103,60
107,Diana,Lorentz,DLORENTZ,590.423.5567,07-FEB-07,IT_PROG,4200,103,60 $ b $ 108,Nancy,Greenberg,NGREENBE ,515.124.4569,17-AUG-02,FI_MGR,12008,...,10 1,100
109,Daniel,Faviet,DFAVIET,515.124.4169,16-AUG-02,FI_ACCOUNT,9000,,108,100

选中10行。

SQL>




  • SQL Developer版本4.1以前



或者,您可以使用新的 / * csv * / SQL Developer 提示 / strong>。 /

例如,在我的 SQL Developer Version 3.2.20.10 / p>



$ ul
  • SQL Developer版本4.1



  • SQL Developer版本4.1中的新增功能,就像使用sqlplus命令一样使用以下脚本。

    $ p $ SET SQLFORMAT csv


    I am using the HR Schema and I would like to concatenate all the columns with ',' for every row.

    My code is :

    SELECT employee_id || ',' || first_name || ',' || last_name || ',' || email || ',' || phone_number || ','|| job_id || ',' || manager_id || ',' || hire_date || ','
    || salary || ',' || commission_pct || ',' || department_id
    
    THE_OUTPUT FROM employees;
    

    Is there a better way (for instance using listagg function) ? I am thinking if the table has 1000 columns I can't do the above

    Thanks a lot

    解决方案

    I would like to concatenate all the columns with ',' for every row

    Then use the SQL*Plus commands and generate your desired output. It is all about formatting the output.

    • SQL*Plus

    For example,

    SQL> SET colsep ,
    SQL> SET pagesize 20
    SQL> SET trimspool ON
    SQL> SET linesize 200
    SQL> SELECT * FROM hr.employees WHERE ROWNUM <=10;
    
    EMPLOYEE_ID,FIRST_NAME          ,LAST_NAME                ,EMAIL                    ,PHONE_NUMBER     ,HIRE_DATE,JOB_ID    ,    SALARY,COMMISSION_PCT,MANAGER_ID,DEPARTMENT_ID
    -----------,--------------------,-------------------------,-------------------------,--------------------,---------,----------,----------,--------------,----------,-------------
            100,Steven              ,King                     ,SKING                    ,515.123.4567        ,17-JUN-03,AD_PRES   ,     24000,              ,          ,           90
            101,Neena               ,Kochhar                  ,NKOCHHAR                 ,515.123.4568        ,21-SEP-05,AD_VP     ,     17000,              ,       100,           90
            102,Lex                 ,De Haan                  ,LDEHAAN                  ,515.123.4569        ,13-JAN-01,AD_VP     ,     17000,              ,       100,           90
            103,Alexander           ,Hunold                   ,AHUNOLD                  ,590.423.4567        ,03-JAN-06,IT_PROG   ,      9000,              ,       102,           60
            104,Bruce               ,Ernst                    ,BERNST                   ,590.423.4568        ,21-MAY-07,IT_PROG   ,      6000,              ,       103,           60
            105,David               ,Austin                   ,DAUSTIN                  ,590.423.4569        ,25-JUN-05,IT_PROG   ,      4800,              ,       103,           60
            106,Valli               ,Pataballa                ,VPATABAL                 ,590.423.4560        ,05-FEB-06,IT_PROG   ,      4800,              ,       103,           60
            107,Diana               ,Lorentz                  ,DLORENTZ                 ,590.423.5567        ,07-FEB-07,IT_PROG   ,      4200,              ,       103,           60
            108,Nancy               ,Greenberg                ,NGREENBE                 ,515.124.4569        ,17-AUG-02,FI_MGR    ,     12008,              ,       101,          100
            109,Daniel              ,Faviet                   ,DFAVIET                  ,515.124.4169        ,16-AUG-02,FI_ACCOUNT,      9000,              ,       108,          100
    
    10 rows selected.
    
    SQL>
    

    • SQL Developer Version pre 4.1

    Alternatively, you could use the new /*csv*/ hint in SQL Developer.

    /*csv*/
    

    For example, in my SQL Developer Version 3.2.20.10:

    • SQL Developer Version 4.1

    New in SQL Developer version 4.1, use the following just like sqlplus command and run as script. No need of the hint in the query.

    SET SQLFORMAT csv
    

    这篇关于oracle查询使用','连接所有列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆