-
1 # 使用者5189701024573
-
2 # 藍風24
1、型別不同
這兩個都是用於子查詢的,any 是任意一個,all 是所有。
2、用法不同
select * from student where 班級="01" and age > all (select age from student where 班級="02");
就是說,查詢出01班中,年齡大於 02班所有人 的 同學
相當於
select * from student where 班級="01" and age > (select max(age) from student where 班級="02");
而
select * from student where 班級="01" and age > any (select age from student where 班級="02");
就是說,查詢出01班中,年齡大於02班任意一個的同學
相當於
select * from student where 班級="01" and age > (select min(age) from student where 班級="02");
擴充套件資料:
ANY函式簡介
函式功能:判斷陣列中元素是否為0
語法格式:
B = any(A)
判斷陣列中元素是否是一個非零元素或邏輯1(true)。any函式會忽略掉陣列中的NaN項(not a number)。
如果A是空的,any(A)返回邏輯0(false)。
如果A是一個向量(1行n列或n行1列的矩陣),只要A中有一個非零元素或A中有一個元素是邏輯1,any(A)返回邏輯1(true),否則(A中所有元素均為0)返回邏輯0(false)。
如果A是一個矩陣,any函式把A的每一列當做一個向量,any(A)返回一個行向量。
如果A是一個多維陣列,any(A)對A中第一個非奇異維進行判斷。
B = any(A,dim)
dim指定了要進行判定的維數。例如,對於二維陣列, any(A, 1)把A中每一列看做一個向量,然後進行判斷;any(A, 2)把A中每一行看做一個向量,然後進行判斷。
相關函式:all
回覆列表
any表示任意一個,all表示所有的。如果有張學生記錄表student中有一個屬性組為age現在要查詢年齡在某個區間上的學生記錄就有如下操作1、查詢年齡比15、16、22、21、17、18、19中任意一個都小的學生記錄就有如下程式碼:select *from studentwhere age<any(15,16,22,21,17,18,19)2、查詢年齡比15、16、22、21、17、18、19中任意一個都大的學生記錄就有如下程式碼:select *from studentwhere age>any(15,16,22,21,17,18,19)/*這裡用any 和all是等效的*/用all是大於所有的意思 用all就改為:where age>all(15,16,22,21,17,18,19) 這裡<any就是iname小於括號內部那個子查詢所的結果中的任意一個值,也就是說小於其中最小的一個。