我是sql-server的新手,我一直在学习有关-with和声明和设置的SQL查询。
我有一个问题要让我的查询简短。
DECLARE @MaxID int;
SET @MaxID = (SELECT MAX(rowNumber) FROM (
SELECT ROW_NUMBER() OVER(ORDER BY NoWkOrd ASC) AS rowNumber, a, b FROM
t
) t1) ;
SELECT rowNumber, NoWkOrd, CdEquip, DtWkOrd
FROM (
SELECT ROW_NUMBER() OVER(ORDER BY NoWkOrd ASC) AS rowNumber, a, b
FROM t
) t1
WHERE rowNumber > @MaxID
这是一个orignal查询,我想通过使用with-as cuz两个查询同时使用两次来做这个简短。
DECLARE @MaxID int;
WITH t1
AS (
SELECT ROW_NUMBER() OVER(ORDER BY NoWkOrd ASC) AS rowNumber, a, b
FROM t
)
SET @MaxID = (SELECT MAX(rowNumber) FROM (t1) ;
SELECT rowNumber, NoWkOrd, CdEquip, DtWkOrd
FROM t1
WHERE rowNumber > @MaxID
但是这里有一个关于SET的错误,但我仍在努力解决错误...