SQL UNION操作符

      在维护人事系统的时候,遇到两张无关的表的联合问题,就是将两张相互之间没有字段可以联系的表,但具有共同的名字的字段,合在一个报表中显示出来。这时就引出了union的使用。

      什么是UNION?

        它sql语句中的一种操作符,可以合并多个select语句结果集。但是需要注意的是select语句必须具有相同数量的列,且列必须具有相同的数据类型。

      基本语法:

<span style="font-size:24px;">Selectcolumn_name(s) from table_name1
Union
Select column_name(s)from table_name2</span>

      实例:

       将两张表user1和user2合并起来,数据如下:      

 

表User1
id       name sex
1张三
2李四
3王五

 

表User2
id      namesex   
1张三
2马六
3小七
       

       Sql 语句是:

<span style="font-size:24px;">select * from user1
union
select * from user2</span>


        结果:

id     namesex   
1张三
2李四
2马六
3王五
3小七

       使用union会将重复的数据自动去除,如果想保留重复的数据,可以使用union all操作符进行连接,如下: 

<span style="font-size:24px;">select * from user1
union all
select * from user2</span>

      结果如下:

id          name     sex       
1张三
2李四
3王五
1张三
2马六
3小七

       这样可以将两张表的数据合并在一起,但是还没有达到我想要的效果,我想要的是所有数据按照递增或递减的顺序进行显示,这样我可以知道总共有多少条数据,而不是上述的两种结果,仅仅是将原数据表的数据取出来。

       在上述的基础上我们可以继续优化,

<span style="font-size:24px;">select ROW_NUMBER() over(order by id) as '序号',id,name,sex from
(select * from user1
union all
select * from user2)k</span>

      显示结果如下: 

序号 id      name sex   
11张三
21张三
32马六
42李四
53王五
63小七


      小结:

         SQL语句中有很多操作符可以使我们的操作变得更加简单,不需要做太多的查询而得到我们想要的结果。熟练掌握这些操作符的用法会给我们的操作带来极大的方便,大大提升我们的效率,达到事半功倍的效果。

转载于:https://www.cnblogs.com/victor-grace/p/7253772.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值