| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> SQL:你真的懂union all和union的使用 -> 正文阅读 |
|
[大数据]SQL:你真的懂union all和union的使用 |
先问大家一个问题,你觉得下面这条sql执行出来的结果是怎么样的? select cast(100 as unsigned) as id union all select -100 as id 结果是: 100 是不是出乎你的意料?接下来正式开始正文。 一、说明 如果我们需要将两个select语句的结果作为一个整体显示出来,那么我们就要用到union或者union all关键字 二、语法 [SQL语句1] union / union all? [SQL语句2] 三、两者区别 union:去重且排序(取唯一值,记录没有重复) union all:不去重不排序(直接直连,取到所有值,记录可能有重复) 四、两者效率 从使用上说: 1、对重复结果的处理:union在进行表连接后会筛选掉重复的记录,union all 不会去除重复记录; 2、?对排序的处理?:union将会按照字段的顺序进行排序;union all 只是简单的将两个结果合并后就返回。 从效率上说: union all 要比 union 快很多,所以,如果可以确认合并的两个结果集中不包含重复数据且不需要排序时的话,那么就使用union all 五、注意事项 1、union 和 union all都可以将多个结果集合并,而不仅仅是两个,你可以将多个结果集串起来 比如: select cast(100 as unsigned) as id union all select -100 as id union all select 200 as id 2、使用union和union all必须保证各个select 集合的结果有相同个数的列,并且每个列的类型是一样的。但列名则不一定需要相同,oracle会将第一个结果的列名作为结果集的列名 比如: select cast(100 as unsigned) as id union all select -100 as dd 3、我们没有必要在每一个select结果集中使用order by子句来进行排序,我们可以在最后使用一条order by来对整个结果进行排序 比如: select cast(100 as unsigned) as id union all select -100 as id order by id 4、两个要联合的SQL语句字段个数必须一样,而且字段类型要“相容”(一致) 最后想必大家都应该懂了为啥结果是100,0了吧 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/16 1:38:53- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |