通常,WITH
语句的语法如下:
WITH expression_name AS (
-- 临时查询,生成结果集
SELECT ...
FROM ...
WHERE ...
)
SELECT ...
FROM ...
WHERE ...
在这个语法中,expression_name
是你给这个临时结果集命名的名字,可以在后续的查询中引用。SELECT
语句之前的WITH
语句定义了一个或多个临时的结果集,这些结果集可以被后续的查询引用,从而简化了复杂查询的编写。
下面是一个简单的例子,演示了WITH
语句的使用:
WITH sales_per_region AS (
SELECT
region,
SUM(amount) AS total_sales
FROM
sales
GROUP BY
region
)
SELECT
region,
total_sales,
CASE
WHEN total_sales > 1000000 THEN 'High'
WHEN total_sales > 500000 THEN 'Medium'
ELSE 'Low'
END AS sales_level
FROM
sales_per_region;
在这个例子中,WITH
语句创建了一个名为 sales_per_region
的临时结果集,计算了每个地区的销售总额。然后,在主查询中,引用了这个临时结果集,并根据销售总额计算了销售水平('High'、'Medium'、'Low')。通过WITH
语句,可以使查询更加清晰易懂,避免了重复计算或者子查询的使用。