sql union 查询实现复杂查询
union是一个联合查询,他可以选择2个或更多的表的数据集进来各类操作,有时我们要过滤重复等都是可以的,好面来看看实例吧。
UNION查询,让您结合2个或更多的“选择”查询的结果集。它消除了各种“选择”报表之间的重复行。
每个内部查询的SQL语句必须在结果中相同的字段数套类似的数据类型。
UNION查询的语法是:
代码如下 | 复制代码 |
field1, field2, . field_n from tables UNION select field1, field2, . field_n from tables; |
Example #1
The following is an example of a UNION query:
代码如下 | 复制代码 |
select supplier_id |
在这个例子中,如果supplier_id出现在供应商和订单表,它会出现在您的结果集一次。会删除重复内容。
例#2 - ORDER BY子句
下面是一个UNION查询,使用ORDER BY子句
代码如下 | 复制代码 |
select supplier_id, supplier_name from suppliers where supplier_id > 2000 UNION select company_id, company_name from companies where company_id > 1000 ORDER BY 2; |
问:我需要比较两个日期和返回日期值的基础上的一个字段计数。例如,我在一个表的日期字段称为最后更新日期。我要检查,如果TRUNC(last_updated_date> = TRUNC(SYSDATE- 13)。
答:由于您使用的是这是一个聚合函数COUNT函数,我们建议你使用UNION查询。例如,你可以尝试以下方法:
代码如下 | 复制代码 |
SELECT a.code as Code, a.name as Name, count(b.Ncode) |
下一篇: oracle官方文档之V$SESSION