我在外部申请方面遇到了一些问题,特别是我无法在外部申请中引用ROW。
请注意,如果我将ROW标准放在外部应用之外,那么不会返回没有3,4或5行的人。
OUTER APPLY
(
SELECT ROW_NUMBER()
OVER (ORDER BY L.DATECREATED) AS ROW,
L.PERCENTAGE
LABOURALLOCATION L
***WHERE ROW = 1***
) RECORDS
答案 0 :(得分:2)
您无法在where子句中引用别名列。您也无法将row_number()
功能放在where
或having
中。如果您需要在row = 1
范围内限制为cross apply
,那么唯一的方法是将row_number()
放在子查询中或者作为CTE。请注意,ROW
是保留字 - 我通常使用ROW_NUM
。
OUTER APPLY
(
SELECT ROW_NUM, PERCENTAGE
FROM (
SELECT ROW_NUMBER()
OVER (ORDER BY L.DATECREATED) AS ROW_NUM,
L.PERCENTAGE
FROM LABOURALLOCATION L
)
WHERE ROW_NUM = 1
) RECORDS