一,多表查询
2,查询语法:select t1,column,t2.column from table1 t1,table2 t2 where t1.column3=t2.column1;
语法分别用: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;
三,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