2015-06-17 66 views
1

我正在使用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列,我不能做上述

非常感謝

+3

你不應該在SQL中這樣做。這通常是一個演示問題。爲什麼不將該任務留給表示層? –

+2

如果表格有1000列,則會出現非常嚴重的設計問題。連接列不是數據庫的工作。你應該在你的演示邏輯中做到這一點。 –

+0

不需要在查詢級別執行任何操作,只需要格式化輸出。 –

回答

0

我想來連接所有列「」每一行

然後使用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

enter image description here

  • SQL Developer版本4.1

新要在SQL Developer 4.1版,像sqlplus公司一樣使用以下內容命令並以腳本運行。查詢中不需要提示。

SET SQLFORMAT csv