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‘);




郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。