功能介绍

公用表表达式(CTE,Common Table Expression)是一种在单个SQL查询中定义的临时结果集,它的作用范围仅限于定义它的查询语句。CTE的主要优点在于可以提高SQL语句的可读性和重用性

语法结构

WITH
    <cte_name1> AS (SELECT ...),
    [<cte_name2> AS (SELECT ...)],
    [<cte_nameN> AS (SELECT ...)]
SELECT ...

参数说明:

  • <cte_name>: 指定公用表表达式的名称,用于在查询中引用。

使用示例

示例1:简单的CTE查询

假设我们有一个名为oredres的表,包含album_namealbum_year两个字段。我们想要查询1976年发行的所有专辑名称,并按照名称排序。使用CTE可以简化查询语句如下:

WITH 
my_cte AS (SELECT * FROM oredres WHERE album_year = 1976),
my_cte2 AS (SELECT album_name,count(*) FROM my_cte group by album_name)
SELECT album_name FROM my_cte2 ORDER BY album_name;

示例2:带有过滤条件的CTE查询

如果我们想要查询1976年发行的专辑名称,但仅限于某个特定歌手的作品,我们可以在CTE中添加过滤条件:

WITH my_cte AS (SELECT * FROM oredres WHERE album_year = 1976 AND artist = 'ArtistName')
SELECT album_name FROM my_cte ORDER BY album_name;

联系我们
预约咨询
微信咨询
电话咨询