oracle查询使用','连接所有列 [英] oracle query Concatenate all the columns with ','
问题描述
我的代码是:
$我使用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以前
或者,您可以使用新的 例如,在我的 SQL Developer Version 3.2.20.10 / p> SQL Developer版本4.1中的新增功能,就像使用sqlplus命令一样使用以下脚本。 I am using the HR Schema and I would like to concatenate all the columns with ',' for every row. My code is : 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. For example,
Alternatively, you could use the new For example, in my SQL Developer Version 3.2.20.10: 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.
这篇关于oracle查询使用','连接所有列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋! / * csv * /
在 SQL Developer 中 提示 / strong>。。 /
$ ul
$ p $ SET SQLFORMAT csv
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;
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>
/*csv*/
hint in SQL Developer./*csv*/
SET SQLFORMAT csv