2014-10-05 46 views
0

DB版本:甲骨文11.1.2.1.0 OS:OEL5顯示多個SELECT語句結果水平

我試圖打印水平使用SQL多個SELECT語句的結果,但沒能實現我想要的結果。

多SQLS:

SELECT 'DB Version', version db_version FROM v$instance 
UNION ALL 
select 'Oracle Client', length(addr)*4 || '-bits' word_length from v$process where ROWNUM =1 
UNION ALL 
/

結果:

'DBVERSION'   DB_VERSION 
---------------------- ---------------------------------------------------------------------------- 
DB Version    11.2.0.1.0 
Oracle Client   64-bits 

所需的結果:

DB VERSION ORACLE CLIENT 
-------- ------------------ 
11.2.0.1.0 64-bits   

回答

1

這裏是說,假設我們正在談論的期望的結果是隻有一個有幾列的排:

select max(case when col = col1 then colval end) as "DB VERSION", 
     max(case when col = col2 then colval end) as "ORACLE CLIENT" 
    from (SELECT version colval, 'col1' col 
      FROM v$instance 
     UNION ALL 
     select length(addr) * 4 || '-bits', 
       'col2' 
      from v$process 
     where ROWNUM = 1) 
1

如果你知道每個子查詢返回一行,您可以使用cross join或子查詢:

SELECT (SELECT version db_version FROM v$instance) as "DB Version", 
     (select length(addr)*4 || '-bits' word_length from v$process where ROWNUM = 1) as "Oracle Client" 

或:

SELECT v."DB Version", oc."Oracle Client" 
FROM (SELECT version db_version as "DB Version" FROM v$instance) v CROSS JOIN 
    (select length(addr)*4 || '-bits' as "Oracle Client" from v$process where ROWNUM = 1) oc