Oracle一直以來就支持一種叫做“串聯視圖(in-line view)”的概念,其中子查詢SELECT可以出現在FROM子句中,就似乎它是表名一樣。
  
  下面是一個一般由DBA用來顯示表空間大小的Oracle查詢。注重它在FROM子句中使用了SELECT語句。這就叫做串聯視圖。
                                                                                              
  select
    df.tablespace_name             "Tablespace",
    block_size                 "Block Size",
    (df.totalspace - fs.freespace)       "Used MB",
    fs.freespace                "Free MB",
    df.totalspace                "Total MB",
    round(100 * (fs.freespace / df.totalspace)) "Pct. Free"
  from
    dba_tablespaces                ts,
    (select tablespace_name,
      round(sum(bytes) / 1048576) TotalSpace
     from dba_data_files
     group by tablespace_name)         df,
    (select tablespace_name,
      round(sum(bytes) / 1048576) FreeSpace
     from dba_free_space
     group by tablespace_name)         fs
  where
    ts.tablespace_name = fs.tablespace_name
  and
    df.tablespace_name = fs.tablespace_name(+)
  ;
  
  Tablespace Block Size Used MB  Free MB  Total MB Pct. Free
  --------------- ----------- -----------  ------------  -----------  ----------
  CWMLITE   4,096        6      14      20       70 
  DRSYS     4,096        8      12      20       60 
  EXAMPLE   4,096      153       0      153       0 
  INDX       4,096        0      25      25      100 
  SYSTEM    4,096      241      84      325       26 
  TOOLS      4,096       7       3      10       30 
  TS_16K     16,384       3       7       10       70 
  UNDOTBS   4,096       1     199      200      100 
  USERS      4,096       1       24      25       96 
  
  到了Oracle9i,你可以往SELECT子句中直接添加子查詢。在下面的這個例子中我們將選出一個表的MAX值和AVG值以及具體的行數據。
  
  select
    (select max(salary) from emp)      highest_salary,
    emp_name                      employee_name,
    (select avg(bonus) from commission) avg_comission,
    dept_name
  from
    emp,
    (select dept_name from dept where dept = 'finance')
  ; 
  
  你也可以直接地將子查詢放到插入語句的VALUES子句中:
  
  insert into
    max_credit
  (
    name,
    max_credit
  )
  values
  (
    'Bill',
    select max(credit) from credit_table where name = 'BILL'
  ); 
  
  注重標量子查詢有一些限制,在以下這些情況中不能使用:
  
  ● 某個列的默認值 
  ● RETURNING子句 
  ● 聚簇的哈希表達式 
  ● 功能索引表達式 
  ● 在列上的CHECK約束 
  ● 觸發器的WHEN條件 
  ● GROUP BY和HAVING子句 
  ● START WITH和CONNECT BY子句 
  
  標量子查詢為Oracle SQL提供了一個強大的新工具。雖然其語法比較晦澀有時候很難使用,但是標量子查詢能將幾個查詢組合到一個單獨的SQL單元中使它們可以在一個單獨的單元中被執行。這大大簡化了復雜的SQL計算。標量子查詢對于數據倉庫應用和那些需要復雜SQL查詢的數據庫來說尤其有用。