gpt4 book ai didi

sql - 使用选项创建 View (maxrecursion)

转载 作者:行者123 更新时间:2023-12-03 16:28:54 24 4
gpt4 key购买 nike

我想在 SQL 中创建一个 View ,因为 tableau 软件不支持 CTE 功能。我无法添加 View ,因为我正在使用 MAXRECURSION。错误信息是

Incorrect syntax near the keyword 'OPTION'.



下面是我使用递归的现有 CTE 查询。

我需要在现有查询中添加哪些内容?
WITH shiftHours AS (
-- This is a recursive CTE, code removed to improve readability
)

SELECT *
FROM (
SELECT * from shiftHours
) AS t
PIVOT (
SUM(hourValue)
FOR hourOrdinal IN ([0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23])
) AS pvt
OPTION (MAXRECURSION 0)
GO

最佳答案

虽然您无法创建显式包含 OPTION 子句的 VIEW,但如果您的 CTE 预计会返回 100 个以上的预期结果,并且希望避免将 OPTION 语句添加到您的 VIEW 调用中,请尝试执行 CTE -包括 OPTION 子句 - 在 VIEW 中的 OPENQUERY 语句中。

在您的示例中,它可能看起来像这样:

select * from OPENQUERY([YourDatabaseServer], '
WITH shiftHours AS (
-- This is a recursive CTE, code removed to improve readability
)

SELECT *
FROM (
SELECT * from YourDatabase.YourUser.shiftHours
) AS t
PIVOT (
SUM(hourValue)
FOR hourOrdinal IN ([0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23])
) AS pvt
OPTION (MAXRECURSION 0)

') X

请注意,您必须完全限定对象引用,即数据库和用户规范必须作为对象(表、 View 、sproc 或函数)引用的前缀。

当然,它有点难看,但是很好地完成了工作,并且避免了添加那个讨厌的 OPTION 子句。

关于sql - 使用选项创建 View (maxrecursion),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37063831/

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