【SQL】 CONCAT、UNION、UNPIVOT 的用法和涵义

本文介绍了SQL中的CONCAT函数用于拼接字符串,处理NULL值的CONCAT_WS函数,UNION和UNIONALL操作符在合并查询结果和去重方面的区别,以及UNPIVOT操作用于数据格式转换。
摘要由CSDN通过智能技术生成

CONCAT
一种函数,用于将多个字符串拼接成一个单一的字符串。
SQL 如下:

SELECT CONCAT(str1,str2,str3...)
FROM
table;

这里是将 str1、str2、str3的字段拼接成了一个新的字段返回;
需要注意的是,CONCAT 函数在处理 NULL 值时会返回 NULL,如果想要处理可能包含 NULL 值的情况,
可以使用 CONCAT_WS 函数,它允许指定一个分隔符,并自动忽略 NULL 值。

UNION
一种操作符,用于合并两个或两个以上的 SELECT 语句的结果集,并去除重复的行,返回出去。
SQL 如下:

SELECT column1, column2, ...
FROM
table1
UNION
SELECT column1, column2, ...
FROM
table2;

这里是将 table1 表中的 column1 字段和 column2 字段与table2 表中的 column1 字段和 column2 字段合并成一个结果集,
并自动去除了重复的行;
需要注意的是,UNION 操作符要求两个 SELECT 语句具有相同数量的列, 并且相应列的数据类型必须兼容。

UNION 和 UNION ALL 的区别

  1. UNION 合并多个查询的结果集,并去除重复的行,UNION ALL 不会去除重复的行;
  2. UNION 结果集的重复行会被去除,只保留一个,UNION ALL 结果集的所有行都会被保留,包括重复的行;
  3. UNION 会对结果集进行排序,且对排序的开销较大,因为它要对结果进行去重, UNION ALL 不对结果集进行排序,
    因此操作更快,也更简单。

UNPIVOT
一种操作符,用于将列数据转换为行数据的操作,常用于生成交叉表(crosstab),
它允许通过对某些列进行聚合并将它们作为新的列来重新组织查询结果。
SQL 如下:

SELECT new_column
FROM
table
UNPIVOT (
new_column FOR column_name IN (column1, column2, column3...));

这里是将 table 表里的 colum1 字段和 column2 字段合并成一个新的字段 new_column。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值