"Incorrect syntax near 'OFFSET'. Invalid usage of the option NEXT in the FETCH statement"

オープン
#16 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
csharp, sql
領域
backend, database

調査の方向性

Issue に記載されている 3 回目の列ソートクリックを再現し、生成された SQL を調べます。ソートを削除すると ORDER BY が削除される箇所を追跡し、そのうえで、結果として生成される OFFSET/FETCH クエリが引き続き有効であることを確認します。ASC、DESC、ソートなしを順に切り替えても、報告された構文エラーが発生しなくなれば完了です。

索引モデルが issue の本文から書いたものです。

説明

I get this error when I click a column sort 3 times. It sorts ASC on first click, the DESC, then error.

The generated SQL is:

SELECT
    [InventoryServer].[Id] as 'InventoryServer.Id',
    [InventoryServer].[Name] as 'InventoryServer.Name',
    [InventoryServer].[DockDate] as 'InventoryServer.DockDate',
    [InventoryServer].[BillingStartDate] as 'InventoryServer.BillingStartDate',
    [PatchPartyDowntime].[Name] as 'PatchPartyDowntime.Name',
    [VirtualEnvironment].[Description] as 'VirtualEnvironment.Description'
    -- Many more redacted
FROM
    [InventoryServer]
    LEFT JOIN [ContactGroup] ON [ContactGroup].[Id] = [InventoryServer].[ContactGroupId]
    LEFT JOIN [DisasterRecoveryTeir] ON [DisasterRecoveryTeir].[Id] = [InventoryServer].[DisasterRecoveryTeirId]
    LEFT JOIN [Domain] ON [Domain].[Id] = [InventoryServer].[DomainId]
    -- Many more redacted
WHERE
    (1 = 1) OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY

It appears the order by is ripped away as a part of removing the sort on my third click.

Let me know if you need more code.

主要言語
C#
スター
19
フォーク
11
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

DataTables/NET のほかの issue

DataTables/NET の issue をすべて見る

似ている issue

C# の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。