表查询与聚合函数

前端之家收集整理的这篇文章主要介绍了表查询与聚合函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
今天用到多表查询和聚合函数,查看资料并整合如下:
一,多表查询
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

猜你在找的设计模式相关文章