我不熟悉在SQL Server 2012中使用Lead/Lag函數,當我在SQL Server Management Studio中測試時遇到語法錯誤。我使用lead和lag函數來獲取上一行和下一行值。在SQL Server 2012中使用Lead/Lag函數獲取語法錯誤
SQL語法我使用:
SELECT
Id, Name, Address, Age, Nationality,
LEAD(Name, 1) OVER (ORDER BY Id) LeadValue,
LAG(Name, 1) OVER (ORDER BY Id) LagValue
FROM
Table
錯誤消息:
消息156,級別15,狀態1,行4
附近有語法錯誤關鍵字 '表'。
請告知我在這裏錯過了什麼。謝謝
嘗試包裹在這樣的括號中的字'table':'[表]'。 'Table'是T-SQL中的一個保留字,用於像'alter table ..'或'drop table ...'這樣的命令。 – tarheel
同樣你不會用任何語言的名稱'function'調用一個變量,你不應該調用一個表'table'。雖然合法,但與最佳做法相差180度。 – FDavidov
@tarheel - 當我包裝我的表格對象像這樣[Table]後,它不會返回任何值。它返回null。我需要重命名我的表嗎?有什麼想法嗎? – timmack