Microsoft SQL、ROW_NUMBER 和外部应用
Posted
技术标签:
【中文标题】Microsoft SQL、ROW_NUMBER 和外部应用【英文标题】:Microsoft SQL, ROW_NUMBER & OUTER APPLY 【发布时间】:2016-09-13 11:39:33 【问题描述】:我在使用外部应用时遇到了一些问题,特别是我无法从 OUTER APPLY 中引用 ROW。
请注意,如果我将 where 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】:您不能在 where 子句中引用别名列。您也不能将row_number()
函数放在where
或having
中。如果您需要在cross apply
中限制为row = 1
,唯一的方法是将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
【讨论】:
谢谢你!设法让它完美运行!以上是关于Microsoft SQL、ROW_NUMBER 和外部应用的主要内容,如果未能解决你的问题,请参考以下文章