gpt4 book ai didi

sql-server - 保持简单以及如何在查询中执行多个 CTE

转载 作者:行者123 更新时间:2023-12-01 16:40:13 25 4
gpt4 key购买 nike

我有一个简单的 T-SQL 查询,它从表中发出一堆列,并且还连接来自其他相关表的信息。

我的数据模型很简单。我有一个预定的事件,有参与者。我需要知道每个事件有多少参与者参加。

我的解决方案是添加一个 CTE,对计划的事件进行分组并计算参与者的数量。

这将使我能够加入每个预定事件的信息。保持查询简单。

我喜欢保持查询简单,但是,如果将来我需要在简单查询期间访问其他临时结果,我该怎么办?

如果我可以有多个 CTE,但我不能,我真的很喜欢,对吧?我在这里有什么选择?

我已经排除了应用程序数据层的 View 和操作。我更喜欢隔离我的 SQL 查询。

最佳答案

您可以在一个查询中拥有多个 CTE,也可以重复使用一个 CTE:

WITH    cte1 AS
(
SELECT 1 AS id
),
cte2 AS
(
SELECT 2 AS id
)
SELECT *
FROM cte1
UNION ALL
SELECT *
FROM cte2
UNION ALL
SELECT *
FROM cte1

但请注意,SQL Server 可能会在每次访问 CTE 时重新计算它,因此如果您使用 RAND() 等值>、NEWID() 等,它们可能在 CTE 调用之间发生变化。

关于sql-server - 保持简单以及如何在查询中执行多个 CTE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2140750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com