1. ホーム
  2. sql

[解決済み] Sql Server 2008を使用して、テーブルから上位1000行を削除する方法は?

2022-07-05 23:36:08

質問

SQL Server にテーブルがあります。 私はそこから上位1000行を削除したいと思います。 しかし、私はこれを試しましたが、上位 1000 行を削除するのではなく、テーブル内のすべての行を削除してしまいました。

以下はそのコードです。

delete from [mytab] 
select top 1000 
a1,a2,a3
from [mytab]

どのように解決するのですか?

あなたが試したコードは、実際には2つのステートメントです。A DELETE の後に SELECT .

を定義していない TOP を何順かで定義することはできません。

から削除する特定の順序付けの基準については CTE または同様のテーブル式から削除することが最も効率的な方法です。

;WITH CTE AS
(
SELECT TOP 1000 *
FROM [mytab]
ORDER BY a1
)
DELETE FROM CTE