iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0
自我挑戰組

Oracle資料庫系列 第 17

[Day17]非相關子查詢

  • 分享至 

  • xImage
  •  

什麼是子查詢,這裡舉一個簡單的例子為大家說明:在HR帳戶中,查詢公司內何者的薪水比Irene高?
通常我們會輸入這一段語句:

SELECT first_name, department, salary
FROM employees
WHERE salary<Irene的薪水

但這時候我們並不知道Irene的薪水是多少,“WHERE salary< Irene的薪水”這句就必須改寫,必須先查詢Irene的薪水,語句如下:

SELECT salary
FROM employees
WHERE first_name='Irene';

最後將他們合併,完整語句如下:

SELECT first_name, department, salary
FROM employees
WHERE salary<(SELECT salary
              FROM employees
              WHERE first_name='Irene';)

外層的查詢:主查詢
內層的查詢:子查詢

而上述的例子中:將內層的查詢結果,當作外層搜尋的值,這個概念稱作非相關子查詢,這篇介紹的都會是這個類型。
說明:

  1. 子查詢可以輸入在FROM, WHERE, HAVING 子句中。
  2. 比較的條件分為兩大類
    (1) 單列運算符(>,=,>=,<,<=,<>)適用時機:只有一個結果值的單列子查詢。
    (2) 多列運算符(IN, ANY, ALL) 適用時機:多個結果值的多列子查詢。
  3. 子查詢語句須以小括號括住。

下篇會列出一些簡單的實作例題!


上一篇
[Day16]彙總函數實作
下一篇
[Day18]非相關子查詢實作
系列文
Oracle資料庫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言