oracle sal01,oracle中 all any in的用法
Oracle的嵌套子查詢可以使用Some,Any和All對子查詢中返回的多行結(jié)果進(jìn)行處理。
Some表示滿足其中一個的含義,是用or串起來的比較從句。
例如:SELECT * FROM emp WHERE empno = 'hmz' OR dept = '10'
Any也表示滿足其中一個的含義,也是用or串起來的比較從句。
Some和Any的區(qū)別就是:Some用在“=”的比較關(guān)系中。
英文中的否定句中使用any肯定句中使用some,這一點(diǎn)是一樣的。
some和any都有“一些”的意思
some用在肯定句中,any用在否定句或疑問句中。
【注1】但表示期望得到肯定回答的疑問句中用some。
【注2】any還有“任何”的意思,some沒有
比較:She's too old to do any work.她年事已高,干不了什么活了。
She's old enough to do some work.她已長大了,可以干些活了。
All則表示滿足其中所有查詢結(jié)果的含義,使用and串起來的比較從句。
【實(shí)例】
查詢比部門號為10的員工中的任何一個員工工資都要高的員工的姓名和個人工資。
也就是說只要比部門號為10中工資最少的員工高就滿足條件。
SELECT ename,sal
FROM?emp
WHERE?sal > ANY(SELECT
sal?FROM emp?WHERE
deptno = 10);
這里推薦用any,如果你非要用some也是沒有任何問題的,結(jié)果是一樣的,只是一般來講some用在“=”的比較從句中。
例如:
SELECT ename,sal
FROM?emp
WHERE?sal = SOME(SELECT
sal?FROM emp?WHERE
deptno = 30) AND deptno?NOT
IN?(SELECT
deptno?FROM emp WHERE deptno = 30);
含義是找到和30號部門員工的任何一個人工資相同的那些員工。
最后一個關(guān)鍵字all的用法就是要與子查詢的每一結(jié)果都要匹配。
SELECT ename,sal
FROM?emp
WHERE?sal > ALL(select sal
from emp where deptno = 20);
上面的SQL語句的意義與前面的就完全不一樣了,其意義是找到比部門號為20的員
工的所有員工的工資都要高的員工,也就是比那個工資最高的員工的還要高的員工。
總的來說some和any用法意義是一樣的,僅在詞法上有不同,都表示對子查詢結(jié)果
集“或”的比較關(guān)系,而all則是對子查詢結(jié)果集總每一個結(jié)果“與”的關(guān)系。
總結(jié)
以上是生活随笔為你收集整理的oracle sal01,oracle中 all any in的用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何使用EA画ER图?
- 下一篇: OPENCV-5 学习笔记