oracle高级查询1

分组查询

1.行转列函数wm_concat();
select deptno 部门号,wm_concat(ename) 部门中员工的姓名 from emp group by deptno
 部门号 部门中员工的姓名
--------- ----------------------
        10 CLARK,MILLER,KING
        20 SMITH,FORD,ADAMS,SCOTT,JONES
        30 ALLEN,JAMES,TURNER,BLAKE,MARTIN,WARD

2.oracle分组函数会自动过滤掉空值,如果想保留空值,需要加上nvl函数:nvl(comm,0),前一个值为空就返回后一个。

3.在select列表中所有未包含在组函数中的列都应该包含在group by子句中;包含在group by字句中的列不必包含在select列表中。
select deptno,avg(sal) from emp group by deptno;
select avg(sal) from emp group by deptno;

4.过滤分组使用having
having和where的区别:不能在where子句中使用组函数,可以在having中使用
在没有组函数的情况下,where和having通用,但由于SQL优化,应该尽量使用where.having先分组再过滤,where先过滤再分组.

5.a命令append追加,需要有两个以上的空格.

6.group by语句的增强 group by rollup(a,b)

等价于(group by a,b)+(group by a)+(group by null)
例如:select deptno,job,avg(sal) from emp group by rollup(deptno,job);
break on deptno skip 2相同的部门号的值只显示一次,不同的部门号跳过两行.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle数据库是一种关系型数据库管理系统,它提供了强大的查询功能来检索和操作存储在数据库中的数据。下面是一些常用的Oracle数据库查询技巧和语法: 1. SELECT语句:用于从数据库中检索数据。可以使用SELECT语句选择特定的列、过滤条件、排序和聚合函数等。 2. WHERE子句:用于在SELECT语句中添加过滤条件,以限制返回的结果集。可以使用比较运算符(如等于、大于、小于等)、逻辑运算符(如AND、OR)和通配符(如LIKE)来构建条件。 3. ORDER BY子句:用于对查询结果进行排序。可以按照一个或多个列进行升序或降序排序。 4. GROUP BY子句:用于将查询结果按照一个或多个列进行分组,并对每个组应用聚合函数(如SUM、AVG、COUNT等)。 5. HAVING子句:用于在GROUP BY子句后添加过滤条件,以限制返回的分组结果。 6. JOIN操作:用于将多个表连接在一起,以便在查询中同时检索相关的数据。常见的JOIN类型包括INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN。 7. 子查询:可以在SELECT语句中嵌套一个或多个查询,以便在查询中使用子查询的结果。 8. 联合查询:使用UNION操作符可以将多个SELECT语句的结果合并为一个结果集。 9. 视图:可以创建一个虚拟的表,该表是基于一个或多个表的查询结果。视图可以简化复杂的查询,并提供更好的数据安全性。 10. 索引:可以在数据库表上创建索引,以提高查询性能。索引可以加快数据检索速度,但会增加数据插入、更新和删除的开销。 这些只是Oracle数据库查询的一些基本技巧和语法,还有很多其他高级查询功能和特性可以进一步探索和学习。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值