- 浏览: 3086 次
- 性别:
- 来自: 北京
最新评论
文章列表
Merge用来合并update和insert语句。通过Merge语句,根据一张表原数据表或子查询的连接条件对另外一张目标表进行查询,连接条件匹配上的进行update,无法匹配的执行insert。
Merge语法:
merge into 表名 (别名1)using (select 查询)(别名2)
on (别名1.code=别名2.code)
when matched then
upate……
when not matched then
insert……
select code,
(case when max(value)-min(value)>=1 then (case when min(value)-(max(value)-min(value))/3<0 then -1*ceil(abs(min(value)-(max(value)-min(value))/3)) else ceil(min(value)-(max(value)-min(value))/3) end) else (case when min(value)-2<0 then -1*ceil(abs(min(value)-2)) else ceil( ...
我相信做为一个程序员就一定使用过union & union all
就我自己的理解说一下这两个函数的含义与使用
1)union & union all 相同点:select查询语句列出的列数量必须相同,列的数据类型必须相同,列的顺序必须相同;
2)union & union all 不同点:
union 的select查询语句不允许有重复值,也就是说查询出的值必须是不同的。
例:
select orgCode,orgName,data from a
union
select orgCode,orgName,data from b
结果集:
河北 10;
河南 20;
...
子查询with as 使用
1.查询多个数据表时,最简单的方法就是使用with as 子查询,以下示例查询两张数据表:
1)需求:统计各个分行的贷款金额(需要合计两张中的数据)
2)数据表a;
3)数据表b;
with a as
(
select a.branchCode,c.orgName as branchName,nvl(sum(a.data),0) as data
from a a
left join c c on a.branchCode = c.orgCode
group by a.branchCode,c.orgName
),
b as
(
s ...