"景先生毕设|www.jxszl.com

oracle 两段查询sql 拼接

2022-12-02 13:22编辑: www.jxszl.com景先生毕设
oracle 两段查询sql 拼接
1.UNION 拼接成一列
UNION 用法
1.UNION的作用 UNION运算符用于组合两个或更多SELECT语句的结果集。
2UNION使用前提UNION中的每个SELECT语句必须具有相同的列数
3UNION就是将多段功能类似的SQL连接起来,并且可以去掉重复的行,有DISTINCT的功能。
这些列也必须具有相似的数据类型
每个SELECT语句中的列也必须以相同的顺序排列

2.UNION ALL拼接成一列
UNION ALL则只是单纯的将多段类似SQL连接起来而且。他们的好处是可以将复杂SQL按不同的功能或作用拆分成一小段SQL进行拼接,可以有效提高查询效率


3JOIN 拼接成一行
不同的 SQL JOIN 类型:

CROSS JOIN(交叉联结):没有条件的join,返回被连接的两个表所有数据行的笛卡尔积;
INNER JOIN(内联结):如果表中有至少一个匹配,则返回行;
LEFT JOIN(左联结):即使右表中没有匹配,也从左表返回所有的行;
RIGHT JOIN(右联结):即使左表中没有匹配,也从右表返回所有的行;
FULL JOIN(全联结):只要其中一个表中存在匹配,则返回行。


4.listagg函数 拼接成一行
listagg函数是oracle11.2以后推出的一个新函数,使用该函数实现了行转列的功能,该数据与wmsys.wm_concat函数功能类似。
sql语句举例说明:

select nation,  listagg(city,',') within group (order by  city) as city  
from test  
group by nation
1:使用该函数必须的进行分组(group by 或使用分析函数进行分组)
2:listagg函数第一个参数表示需要进行枚举的字段,第二个参数表示枚举数据的分隔符
3:对于枚举的字段同时还需要排序和分组within group(order by xx)
原文链接:http://www.jxszl.com/biancheng/shujuku/83932.html