私はSQLにかなり慣れていないので、これが初心者のクエリである場合はすみません.
上の図からわかるように、Sql DB テーブルにいくつかのデータがあり、指定したシリアル番号から 4 行ごとに削除する必要があります。次に、行の順序を変更せずに Serial_no 列の番号を付け直す必要があります。
可能であれば、これらすべてを単一のクエリで実行する必要がありますが、過去2日間苦労しています
皆さんが私を助けてくれることを願っています。前もって感謝します
//USING THIS CODE TO DELETE every 4th row//
DELETE
FROM Tbl2
FROM
Tbl2 AS A
INNER JOIN
(
SELECT ROW_NUMBER() OVER(ORDER BY GETDATE()) AS CNT , *
FROM Tbl2
) AS B ON A.Serial_no = B.Serial_no
WHERE CNT%4 = 0 AND CNT >= 10
ただし、再番号付けクエリ (以下)
DECLARE @FIRSTID INT = 1000000010
UPDATE tbl2
SET Serial_no = @FIRSTID + ROW_NUMBER() OVER(ORDER BY Serial_no) - 1
FROM tbl2
「メッセージ 4108、レベル 15、状態 1、行 8 ウィンドウ関数は、SELECT または ORDER BY 句でのみ使用できます」というエラーをスローします。