微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

表查询与聚合函数

今天用到多表查询和聚合函数,查看资料并整合如下:
一,多表查询
1,多表查询:根据特定的链接条件从不同的表中获取所需数据!
2,查询语法:select t1,column,t2.column from table1 t1,table2 t2 where t1.column3=t2.column1;
3,多表链接类型:内连接和外连接,其中外连接包括:左外连接,右外连接和全链接;
语法分别用:inner join,left join,right join,full join
二,聚合函数
使用聚合函数sum,min,max,avg,count的同时如果还要查询表中的列,那么久必须使用group by 分组查询语句,group by要包含在select 和from之间除了聚合函数以外所有的列!例如:
select student.name,sum(student.score),student.age from student group by student.name;
上面的写法是不对的,group by 要包含除了聚合函数以外的所有列,下面的写法是正确的,否则报ORA-00397:不是单组分组函数
三,union all用法
join 是两张表做交连后里面条件相同的部分记录产生一个记录集,
union 和 union all操作符用于合并两个或多个 SELECT 语句的结果集,serif; font-size:14px; line-height:21px">

Union,对两个结果集进行并集操作,不包括重复行,同时进行认规则的排序;

Union All,对两个结果集进行并集操作,包括重复行,不进行排序;

注意:要操作的结果集的列的数量和类型一定要一样!例子:
select t1.column1,t1.column2,t1.column3 from table t1 union all select t2.column1,t2.column2,t3.column3 from table t2;
其中列数一致,都是3个列,其次t1.column和t2.column的类型要一致,t1.column2和 t2.column2的类型要一致, t1.column3和 t3.column3的类型要一致!
四,nvl控制转换函数
2,表达式2,表达式3):表达式1非空,则返回表达式2;表达式1为空,则返回表达式3.

五,case when使用
语法:case 表达式1 when 表达式2 then 表达式3 else 表达式4 end;当表达式1等于表达式2的时候返回表达式3,否则返回表达式4;
例子:我这里有一个boolean(是否计算)类型对应的字段IS_CALC和另一个int(总和)类型对应的字段TOTAL_SUM,
select sum(case is_calc when 1 then total_sum else 0 end) from table ;//当是否计算为true是,返回total_sum,否则返回结果集为0

原文地址:https://www.jb51.cc/javaschema/284940.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐