加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

表查询与聚合函数

发布时间:2020-12-13 22:34:50 所属栏目:百科 来源:网络整理
导读:今天用到多表查询和聚合函数,查看资料并整合如下: 一,多表查询 1,多表查询:根据特定的链接条件从不同的表中获取所需数据! 2,查询语法:select t1,column,t2.column from table1 t1,table2 t2 where t1.column3=t2.column1; 3,多表链接类型:内连接和外连接,其
今天用到多表查询和聚合函数,查看资料并整合如下:
一,多表查询
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读