输入栏最后一个非NULL值,并投入新列的每个条目SQL
问题描述:
我试图按照教程由SQLMag http://sqlmag.com/t-sql/last-non-null-puzzle输入栏最后一个非NULL值,并投入新列的每个条目SQL
SELECT id, col1, relevantid,
MAX(relevantid) OVER(ORDER BY id
ROWS UNBOUNDED PRECEDING) AS grp
FROM dbo.T1
CROSS APPLY (VALUES(CASE WHEN col1 IS NOT NULL THEN id END))
AS A(relevantid);
完成得到这个到SQL Server 2008上运行。每次我尝试MAX(relevantid)OVER(ORDER BY ID)我在订单附近收到语法错误。如果我划分它不是一个问题,但是如果我只包括命令我遇到问题,是否有解决方法。
答
在阅读Microsoft文档并从brent Ozar找到本文后,它看起来像您的某些语法不适用于SQL Server 2008。
https://docs.microsoft.com/en-us/sql/t-sql/queries/select-over-clause-transact-sql https://www.brentozar.com/sql-syntax-examples/window-function-examples-sql-server/
倒不如使用SQL Server的更高版本供自己使用,如果多数民众赞成你正在尝试做的。
什么是确切的错误? – SriniV