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 的区别
- UNION 合并多个查询的结果集,并去除重复的行,UNION ALL 不会去除重复的行;
- UNION 结果集的重复行会被去除,只保留一个,UNION ALL 结果集的所有行都会被保留,包括重复的行;
- 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。