'unionall'和'union all'的不同结果集。

为什么 “unionall “和 “union all “得到的结果不同?

Select null
Union
Select null
Union all
Select null

#

Select null
Union
Select null
Unionall
Select null

解决方案:

据我所知。UNIONALL 在任何SQL方言中都不是一个有效的操作符关键字。

如果你在Microsoft SQL Server中运行你的例子(为了举例说明),那么会返回以下结果。

查询1 – 一个单一的结果集,如下所示。

NULL
NULL

查询2 – 两个结果集:

NULL

NULL

演示。https:/dbfiddle.uk?rdbms=sqlserver_2019&fiddle=a1cde2b7af1e376fd5d9c1c780c6142b。

在第二个查询中发生的情况是 Unionall 正在被作为一个 列别名. 虽然你把它写在了另一行,但这并不重要。如果你把它写成

Select null Unionall

的效果会更清晰。独立运行该行,可以看到它为列命名。https:/dbfiddle.uk?rdbms=sqlserver_2019&fiddle=cd796a0f3a16156d56d2fe3d6d5f8459。

因此,你的第二个查询实际上是两个 分开 查询,而不是单一的联合查询。(在你的版本中,列的命名没有出现,因为你把它和另一个列联合起来了。SELECT NULL 就在上面,联合中的第一个查询的列名优先)。)

给TA打赏
共{{data.count}}人
人已打赏
解决方案

数组的条件映射

2022-5-11 7:00:26

解决方案

在bash中加入文件时保留文件头。

2022-5-11 7:00:28

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索