-
in 等于列表中的一個 any 和子查詢返回的的任意一個值比較 all 和子查詢返回的所有值比較查看全部
-
一般先執行子查詢,再執行主查詢;但相關子查詢例外 相關子查詢,外表必須起別名,傳遞給子查詢 select empno,ename,sal,(select avg(sal) from emp where deptno=e.deptno) avgsal from emp e where sal>(select avg(sal) from emp where deptno=e.deptno);查看全部
-
行號永遠按照默認的順序生成 行號只能使用<,<=;而不能使用>,>= 使用子查詢變通 select * from (select * from emp order by sal desc) where rownum<=3查看全部
-
select * from emp where deptno=(select deptno from dept where dname='SALES'); 使用多表查詢: select e.* from emp e,dept d where e.deptno=d.deptno and d.dname='SALES' ; 理論上應該盡量使用多表查詢,因為上面的子查詢有兩個from語句,所以要對數據庫訪問查詢兩次,而下面的多表查詢只訪問了一次!這是理論上的結論,并沒有考慮實際比如多表查詢中產生的笛卡爾積的大小,具體情況還是要具體對待。查看全部
-
不可以使用子查詢的位置:group by查看全部
-
where select having from 都可以使用子查詢查看全部
-
子查詢必須有小括號查看全部
-
自連接就是通過別名,將同一張表視為多張表查看全部
-
相同的部門號只顯示一次,不同的部門號隔2行 break on deptno skip 2查看全部
-
group by 語句的增強 group by rollup(a.b)可以理解等價于: group by a,b + group by a + group by null查看全部
-
出現在select后面的字段,且沒有在分組函數中的,必須要在group by子句中聲明; where子句中不能使用組函數; having用于過濾分組后的數據,與where類似; 如果過濾條件中沒有分組函數時,where與having通用,那么從sql優化的角度來講,where的效率更高,因為having是先分組再過濾,而where是先過濾再分組。查看全部
-
--分組函數與空值 select sum(sal)/count(*),avg(sal) from emp; --注意:分組函數會自動忽略空值 --nvl函數使分組函數無法忽略空值 select count(*),count(nvl(comm,0)) from emp;查看全部
-
wm_concat(列名)行轉列 select deptno 部門號,wm_concat(ename) 部門中員工的姓名 from emp group by deptno; 按照部門號分組,將相同部門號的員工以逗號分隔的形式展示到一行中查看全部
-
--平均 總和 select avg(sal),sum(sal) from emp; --最小和最大 select min(sal),max(sal) from emp; --總個數 select count(1) from emp; --求出部門數 select count(distinct deptno) from emp;查看全部
-
常用分組函數: avg:平均數 sum:求和 min:最小值 max:最大值 count:組中包含數據的個數 wm_concat:行轉列查看全部
舉報
0/150
提交
取消