gpt4 book ai didi

tsql - 如何从 SQL Server CTE 设置参数值?

转载 作者:行者123 更新时间:2023-12-02 00:14:41 28 4
gpt4 key购买 nike

给定以下 SQL:

;WITH Results AS
(
SELECT ItemListID, Title,
ROW_NUMBER() OVER(ORDER BY ItemListID DESC) as intRow,
COUNT(ItemListID) OVER() AS ActualNumberOfResults
FROM ItemData
WHERE FREETEXT(Title, @FTSSearchTerm)
AND WebsiteID = @WebsiteID
AND ContentTypeID = @ContentTypeID
AND GeoID2 = @GeoID
)
SELECT * FROM Results
WHERE intRow BETWEEN @intStartRow AND @intEndRow
ORDER BY ItemListID DESC

SELECT @NumberOfResultsReturned = @@ROWCOUNT

我想将参数 @ActualNumberOfResults 设置为从 CTE 返回的 TOP(1) ActualNumberOfResults 的值。

我在 CTE 之后使用了以下内容,但似乎是重复的:

SELECT @ActualNumberOfResults = COUNT(*)
FROM ItemData
WHERE CONTAINS(Title, @FTSSearchTerm )
AND WebsiteID=@WebsiteID

我怎样才能做到这一点?

最佳答案

;WITH cte AS
(
SELECT ItemListID, Title,
CASE WHEN ROW_NUMBER() OVER(ORDER BY ItemListID DESC)
BETWEEN @intStartRow AND @intEndRow THEN 1
END AS NumberOfResultsReturned,
COUNT(ItemListID) OVER() AS ActualNumberOfResults
FROM ItemData
WHERE FREETEXT(Title, @FTSSearchTerm)
AND WebsiteID = @WebsiteID
AND ContentTypeID = @ContentTypeID
AND GeoID2 = @GeoID
)
SELECT @NumberOfResultsReturned = COUNT(NumberOfResultsReturned),
@ActualNumberOfResults = MAX(ActualNumberOfResults)
FROM cte

演示 SQLFiddle

关于tsql - 如何从 SQL Server CTE 设置参数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13826851/

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