Microsoft SQL,ROW_NUMBER&外面申请

时间:2016-09-13 11:39:34

标签: sql-server tsql window-functions

我在外部申请方面遇到了一些问题,特别是我无法在外部申请中引用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

1 个答案:

答案 0 :(得分:2)

您无法在where子句中引用别名列。您也无法将row_number()功能放在wherehaving中。如果您需要在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