oracle查询使用','连接所有列
问题描述:
我正在使用HR模式,我想用','连接所有列,每行。oracle查询使用','连接所有列
我的代码是:
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;
有没有更好的方法(例如,使用LISTAGG功能)? 我想,如果表中有1000列,我不能做上述
非常感谢
答
我想来连接所有列“”每一行
然后使用SQL * Plus命令并生成所需的输出。这完全是关于格式化的输出。
- 的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, , 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版本4.1前
另外,你可以使用新的/*csv*/
提示在SQL Developer。
/*csv*/
例如,在我的SQL Developer版本3.2.20.10:
- SQL Developer版本4.1
新要在SQL Developer 4.1版,像sqlplus公司一样使用以下内容命令并以脚本运行。查询中不需要提示。
SET SQLFORMAT csv
你不应该在SQL中这样做。这通常是一个演示问题。为什么不将该任务留给表示层? –
如果表格有1000列,则会出现非常严重的设计问题。连接列不是数据库的工作。你应该在你的演示逻辑中做到这一点。 –
不需要在查询级别执行任何操作,只需要格式化输出。 –