sql任意值
『壹』 sql中any和all的區別
1、類型不同
這兩個都是用於子查詢的,any 是任意一個,all 是所有。
2、用法不同
select*fromstudentwhere班級='01'andage>all(selectagefromstudentwhere班級='02');
就是說,查詢出01班中,年齡大於 02班所有人 的 同學
相當於
select*fromstudentwhere班級='01'andage>(selectmax(age)fromstudentwhere班級='02');
而
select*fromstudentwhere班級='01'andage>any(selectagefromstudentwhere班級='02');
就是說,查詢出01班中,年齡大於02班任意一個的同學
相當於
select*fromstudentwhere班級='01'andage>(selectmin(age)fromstudentwhere班級='02');
(1)sql任意值擴展閱讀:
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
『貳』 SQL中where 年齡='任意值',年齡欄位等於任意值怎麼表達實現格式一定要where 年齡=
where 年齡=年齡
用參數的寫法:
WHERE
年齡 = CASE WHEN 參數 = '任意值' THEN 年齡 ELSE 參數 END
這樣當 傳入的參數為 '任意值' 的時候, 條件為 年齡=年齡
傳入的參數為 25 的時候, 條件為 年齡=25
不過由於 數據類型的問題, 年齡是 數字型的, 那個 '任意值' 是字元型的
CASE WHEN 參數 = '任意值' THEN 年齡 ELSE 參數 END
可能會出錯
一般是
CASE WHEN 參數 IS NULL THEN 年齡 ELSE 參數 END
這種情況下,如果參數不傳,就是全部。
『叄』 SQL 中ANY和ALL的用法
any表示任意一個,all表示所有的。舉例如下:
1、創建測試表,create table test_any_all(id number);