oracle 连接查询,和(+)符号的用法
--连接查询 左链接、右链接,全链接
--内链接
select e.account 用户名, e.empname 名称, c.comname 公司名称
from employee e
inner join company c on (e.com_sq = c.sequen)
where c.sequen = 1;
--连接查询也可以用这种方法来查询
select e.account 用户名, e.empname 名称, c.comname 公司名称
from employee e,company c where e.com_sq=c.sequen;
JOIN的写法是SQL的标准,当有多个表关联时,JOIN的方式写法的写法能更清楚的看清楚各表之间的关系,所以建议使用JSON写法
left join 以左边查询为准,只会返回左边匹配的数据,右表没有匹配的信息不显示
right join 以右边查询为准,只会返回左右边匹配的数据,左表没有匹配的信息不显示
full join 全查询,左右两表数据都显示出来
其中左右链接查询也可以是下面哪种写法
select * from table1 a,table2 b from a.v(+)=b.id; --(+) 在右边表示有查询相当于 right join
select * from table1 a,table2 b from a.v=b.id(+); --(+) 在左边表示有查询相当于 left join
(+)操作符只能用于实现左外连接和右外连接,而不能用于实现完全外连接。
有关于常用的查询再说说其它的把,--未完待续。。。
-查询分类(注意:分类如果是汉字需要用 ‘‘ 如 case when a>100 then ‘屌丝一级‘)
select sequen as 编号,
account as 用户名,
case
when e.salary >1000 and e.salary < 2000 then 1
when e.salary<=1000 then 0
else
2
end as 级别,
e.salary as 工资
from employee e
order by 1, 3 asc;
根据指定日期来查询每个小时的订单销售总额
select trunc(remittime - 1 / 24 / 60 / 60, ‘HH‘) time, sum(FPRICE)
from info_pnr p
where p.remittime >=
to_date(‘2014-2-28 00:00:00‘, ‘yyyy-mm-dd hh24:mi:ss‘)
and p.remittime <=
to_date(‘2014-2-28 23:59:59‘, ‘yyyy-mm-dd hh24:mi:ss‘)
group by trunc(remittime - 1 / 24 / 60 / 60, ‘HH‘)
order by trunc(remittime - 1 / 24 / 60 / 60, ‘HH‘);
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。