【SQL Server】指定した範囲のレコードのみを別のテーブルへ登録する

背景

Oracleでは「指定した範囲のレコードのみを取得」が簡易にできるようだが、
SQL Serverではできないため工夫が必要

サンプルプログラム概要

employeeテーブルにある2~3行目のレコードのみを、
employee_20191201テーブルへ登録する

サンプルプログラム

INSERT into [dbo].[employee_20191201]          --登録するテーブルを指定
SELECT [Id],[Name],[Birthday],[Gender] FROM ( --取得元のテーブルの全てのカラムを指定
    SELECT                                     --並び変えで使用するカラムを指定
        ROW_NUMBER() OVER ( ORDER BY [Id],[Name] ) AS row_num, 
        *
    FROM [dbo].[employee]                      --取得元のテーブルを指定
) TMP WHERE row_num BETWEEN 2 AND 3           --取得したいレコードの範囲を指定

タイトルとURLをコピーしました