包含HAVING的用法:适用于where后面的条件实现 where sum() <>= column 使用 HAVING sum() <>= column 实现
两种复制表的语句:
select into from 和insert into select from两种表复制语句
1.INSERT INTO SELECT语句
语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1
要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。
2.SELECT INTO FROM语句
语句形式为:SELECT vale1, value2 into Table2 from Table1
要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。
SQL UNION 和 UNION ALL 操作符
SQL UNION 操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SQL UNION 语法
SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2
默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
SQL UNION ALL 语法
SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2
另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。
UNION ALL 命令和 UNION 命令几乎是等效的,不过 UNION ALL 命令会列出所有的值。
eg:
union all
with a as ( select 1 flag from dual ) ,b as ( select 1 flag from dual ) select flag from a union all select flag from b
结果为:
序号 FLAG 1 1 2 1
union
with a as ( select 1 flag from dual ) ,b as ( select 1 flag from dual ) select flag from a union select flag from b
结果为:
序号 FLAG 1 1