列子查詢(多行子查詢)

2021-10-09 20:50:02 字數 2407 閱讀 8633

多行子查詢

返回多行。

使用多行比較操作符。

操作符 含義

in/not in 等於列表中的任意乙個

any|some 和子查詢返回的某乙個值比較

all 和子查詢返回的所有值比較

案例1:返回location_id是1400或1700的部門中的所有員工姓名

1.查詢location_id是1400或1700的部門編號

select

distinct department_id

from departments

where location_id in

(1400

,1700

);

2.查詢員工姓名,要求部門號是1. 列表中的某乙個

select last_name

from employees

where department_id in

(select

distinct department_id

from departments

where location_id in

(1400

,1700);

);或select last_name

from employees

where department_id =

any(

select

distinct department_id

from departments

where location_id in

(1400

,1700);

);不是1. 中的某乙個

select last_name

from employees

where department_id notin(

select

distinct department_id

from departments

where location_id in

(1400

,1700);

);或select last_name

from employees

where department_id <>

all(

select

distinct department_id

from departments

where location_id in

(1400

,1700);

);

案例2:返回其它工種中比job_id為』it_prog』部門任一工資低的員工的員工號、姓名、job_id 以及salary

1.查詢出job_id為』it_prog』部門的員工的工資

select

distinct salary

from employees

where job_id =

'it_prog'

;

2.查詢員工的工號、姓名、job_id 以及salary,要求是salary比1. 低

select employee_id,last_name,job_id,salary

from employees

where salary <

any(

select

distinct salary

from employees

where job_id =

'it_prog';)

and job_id<>

'it_prog'

;

案例3:返回其它部門中比job_id為』it_prog』部門所有工資都低的員工的員工號、姓名、job_id以及salary

select employee_id,last_name,job_id,salary

from employees

where salary <

all(

select

distinct salary

from employees

where job_id =

'it_prog';)

and job_id<>

'it_prog';或

select employee_id,last_name,job_id,salary

from employees

where salary <

(select

min(salary)

from employees

where job_id =

'it_prog';)

and job_id<>

'it_prog'

;

七 SQL 子查詢 列子查詢

與標量子查詢不同,列值子查詢可以返回乙個多行多列的結果集。這樣的子查詢又被稱為錶子查詢,錶子查詢可以看作乙個臨時的表,錶子查詢可以用在select 語句的from子句中 insert語句 連線 in 子句等很多場合。首先來看乙個在from子句中使用的最簡單的錶子查詢。sql語句如下 select t...

MySQL中的標量子查詢,列子查詢,行子查詢

標量子查詢,列子查詢,行子查詢都屬於where子查詢,也就是說都寫在where之後 標量子查詢 概念 子查詢得到的結果是乙個資料 一行一列 語法 select from 資料來源 where 條件判斷 select 欄位名 from 資料來源 where 條件判斷 查詢到的結果就只有乙個結果 案例 ...

單行子查詢返回多行

今天在做專案的時候,將備份back表中的資料更新到正式表中的時候,報了單行子查詢返回多行的錯誤,後來仔細檢視了備份表的子查詢發現確實有多個tcx wx xx id 的記錄,所以rownum 2 強制取了第一條,因為本來就是單條更新。update tcx wx xx wx set tcx sblxzd...