UNION语句

UNION语句类似于PowerQuery中的追加查询,可以将两个表或者两个数据集进行上下合并。DAX函数中也有UNION,而且用法上有很大的相似。

UNION使用要求两个数据集列的数量相同,两个数据集列的数据类型完全一致,且列的顺序也需要保持一致。

除了UNION之外,还有UNION ALL语句。二者的区别在于前者返回的数据集没有重复项,后者返回的数据集包含重复项。

基础语法

UNION语法:

SELECT 列名称(s) FROM 表1
UNION
SELECT 列名称(s) FROM 表2

UNION ALL语法:

SELECT 列名称(s) FROM 表1
UNION ALL
SELECT 列名称(s) FROM 表2

使用实例

案例数据:

在白茶本机的数据库中,存在名为“TEST”的数据库,存在名为“婴儿类”和“混合类”的案例数据。

例子1:

在PowerBI中使用UNION语句将两张表进行合并。

SELECT * FROM 婴儿类
UNION
SELECT * FROM 混合类

结果如下:

例子2:

在PowerBI中使用UNION ALL语句将两张表进行合并。

SELECT * FROM 婴儿类
UNION ALL
SELECT * FROM 混合类

结果如下:

对比例子1的结果我们可以很容易的发现,混合类的重复项目得到了保留。

例子3:

在PowerBI中使用UNION语句将两张表中的[商品分类]列进行合并。

SELECT 商品分类 FROM 婴儿类
UNION
SELECT 商品分类 FROM 混合类

结果如下:

例子4:

在PowerBI中使用UNION语句将婴儿类中的[商品分类]列与混合类的[销售价]列进行合并。

SELECT 商品分类 FROM 婴儿类
UNION
SELECT 销售价 FROM 混合类

结果如下:

因为两个数据集中的列数据类型不同,所以结果报错。

闲聊几句:

对于PowerBI的认知,白茶更喜欢称之为容器、平台。

对比其他BI类软件而言,微软的PowerBI兼容性更强,可以兼容很多其他的语言。

比如说:Python、R语言、SQL语言、Mysql语言等等。

因此小伙伴们在开发过程使用到了其他语言,一定要注意这个语言的一些开发规范和细节要求。

因为PowerBI作为平台可以兼容这些语言,同样也是要遵循原本这些语言的要求的。

比如说:Mysql为了区分关键字与普通字符,引入了反引号。

而在SQL Server中是没有反引号这个概念的,只有单引号。

因此我们在PowerBI中使用SQL查询的时候,也需要遵守这些细节。

这里是白茶,一个PowerBI的初学者。