SQL Server 2012でLead/Lag関数を使用するのが初めてで、SQL Server Management Studioでテストしたときに構文エラーが発生しました。私は前と次の行の値を取得する目的で先導機能を使用しました。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'は' alter table ..'や 'drop table ...'のようなコマンドのためにT-SQLの予約語です。 – tarheel
同じ言語で 'function'という名前の変数を呼び出さない場合は、' table'というテーブルを呼び出すべきではありません。合法ですが、それはベストプラクティスから180度です。 – FDavidov
@tarheel - この[Table]のようなテーブルオブジェクトをラップした後、値は返されません。 nullを返します。テーブルの名前を変更する必要はありますか?何かご意見は? – timmack