子查询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
(
select b.branchCode,c.orgName as branchName,nvl(sum(b.data),0) as data
from b b
left join c c on b.branchCode = c.orgCode
group by b.branchCode,c.orgName
)
select nvl(a.branchCode,b.branchCode) as branchCode,
nvl(a.branchName,b.branchName) as branchName,
nvl(a.data,0)+nvl(b.data,0) as data
from a
full join b on a.branchCode = b.branchCode
怎么样?with as 就是如些的简单,举一反三,只要你掌握了这个函数,理解了它真正的含义,不管有几张表,逻辑如何复杂,都会让你得心应手……
真是过瘾呀,写sql真是一种享受…… 以后会陆续写sql^^^^呵呵,写sql我的最爱………………
路过的人,不管你对sql有什么独特的见解,还是对sql有多深厚的功底,都不要对我写的sql嗤之以鼻……
我写的sql我骄傲……
分享到:
相关推荐
对于需重复查询的sql语句,可巧用with as 对sql语句进行精简,提高查询效率
1. **简化复杂的嵌套查询**:当一个查询中包含多个子查询时,使用`WITH AS`可以将这些子查询定义为CTE,从而让整个查询更加清晰易懂。 2. **重复使用子查询结果**:如果一个查询中多次使用同一个子查询的结果,那么...
### 内联视图、标量子查询与WITH子查询在Oracle中的应用 #### 内联视图(Inline View) 在Oracle数据库中,内联视图是一种特殊的视图形式,它直接在查询语句中定义而不是作为独立的对象创建并存储在数据库中。这种...
- **性能优化**:在某些情况下,使用CTE可以避免多次执行相同的子查询,从而提高查询效率。 - **递归查询**:CTE支持递归查询,这对于处理层次结构数据非常有用。 #### 二、语法结构 `WITH...AS`的基本语法如下...
一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ...
这意味着对于每个`select`子句,Hive都重新执行了`with as`后面的子查询,而没有利用到物化的结果。 然而,如果启用了物化,Hive会在第一次执行`with as`子句后将结果存储在内存中,后续的查询就可以直接从内存中...
WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,...
在SQL Server中,`WITH AS`结构被称为公用表表达式(Common Table Expression,简称CTE)。它是一种临时的结果集,可以在单个查询中多次引用,但与视图不同,CTE不会在数据库中创建永久的对象。CTE主要用在两种场景...
Oracle 11GR2的递归WITH子查询是一种强大的功能,它允许你在SQL查询中创建递归关系,处理层级数据,比如组织结构、家族树或依赖关系等。WITH子查询,也称为公共表表达式(CTE),是SQL标准的一部分,自9i版本开始被...
- **内部子查询**: - 使用`dual`表初始化一个基础节点,其`cant_code`为'100000'。 - 从`ghsj_xm.pub_cant`表中选取符合条件的数据,使用`CONNECT BY`子句进行递归连接,并排除特定的`cant_code`值。 - 使用`...
-- 递归子查询(递归部分) SELECT column1, column2, ... FROM cte_name -- 引用已定义的CTE JOIN table_name ON some_condition ) SELECT * FROM cte_name; ``` 四、实例解析 假设我们有一个`employees`表,...
接下来,我们将使用 `START WITH` 和 `CONNECT BY` 来查询这个表,并构建出一个树状结构。 ##### 构建层级结构 如果我们想从 `ID = 1` 这一行开始构建层级结构,可以使用如下的SQL语句: ```sql SELECT * FROM ...
在某些情况下,如果同一个子查询需要在主查询中多次执行,那么通过WITH AS语句可以将这个子查询的结果先计算出来,之后的查询可以直接使用这些结果,从而避免重复计算,节省计算资源。 ##### 4.3 简化多层嵌套查询 ...
在Oracle数据库中,处理...层次查询能轻松遍历树状结构,而WITH函数则便于进行复杂的子查询操作,两者结合可以满足多种层次数据处理需求。在实际开发中,理解并熟练运用这些特性,能有效提升数据查询的效率和准确性。
在SQL查询中,子查询是一种非常重要的技术,它允许我们在一个查询内部嵌套另一个查询,以获取更复杂的数据。"为子查询命名"这个主题主要关注如何为子查询赋予别名,以便更好地理解和管理复杂的查询结构。下面我们将...