SQL语句中WITH语句的使用

简介: SQL语句中WITH语句的使用

WITH语句可能大家平时用的不多,第一次接触也是因为sql性能问题,做改造的时候在网上查到的,首先介绍一下这个语句的语法:

WITH custom_name AS (

   -- 查表语句

)

-- 接下来的SQL语句可以引用custom_name作为一个临时表或视图

 

例如:

WITH table_2 AS (

   SELECT id,name, SUM(money) AS totalmoney

   FROM table_1

   GROUP BY name

)

SELECT name, totalmoney

FROM table_2

WHERE totalmoney> 1000;

 

理解起来还是比较好理解,就是把查询结果集重新使用一个名字定义一下,然后去使用这个重新定义的名字执行进一步的查询,可以理解为中间结果集的概念。

 

WITH语句主要有以下几个作用:

 

1、代码重用:通过WITH语句,可以将一个复杂的查询拆分成多个简单的部分,每个部分都可以使用WITH语句创建临时的结果集。然后,后续的查询可以引用这些临时结果集,从而提高代码的可读性和维护性。

 

2、递归查询:WITH语句还支持递归查询。在递归查询中,WITH语句定义了一个初始的结果集,并通过逐步迭代地引用自身来构建更大的结果集,直到满足特定的终止条件为止。递归查询通常用于处理树形结构或层次结构的数据。

 

3、优化性能:在某些情况下,使用WITH语句可以带来性能优势。数据库管理系统可以对WITH语句进行优化,执行计划中可能会重用临时结果集,避免重复计算相同的子查询,从而提高查询性能。

 

4、逻辑清晰:使用WITH语句可以将复杂的查询逻辑拆分成简单的部分,使得查询语句的结构更加清晰,容易理解和维护。

 

在业务开发中使用的场景是递归查询一个机构的子机构,然后将所有子机构作为关联表,查询人员或者业务数据。还有一个场景就是将复杂的查询拆分成几个子查询,提升性能。

目录
相关文章
|
7月前
|
SQL 安全 关系型数据库
|
7月前
|
SQL
简单的基本sql语句
简单的基本sql语句
|
SQL 存储 Oracle
关于SQL语句,只有这么多了
关于SQL语句,只有这么多了
|
SQL 安全 关系型数据库
常用SQL语句总结
这些不同类型的SQL语句提供了丰富的功能和灵活性,以满足不同的数据库操作需求。开发人员通过组合和使用这些语句,可以实现数据的查询、更新、定义和安全控制等操作,从而有效地管理数据库。
|
SQL 关系型数据库 MySQL
|
SQL 数据库 索引
常见SQL语句
常见SQL语句
146 0
|
SQL 程序员 数据库
|
SQL 存储 监控

热门文章

最新文章