SQL Serverでレコードに連番を付ける
検索画面等で抽出したデータ件数が多い場合、レスポンスを良くするために50件毎にページ送りするようなことがあると思います。
その場合にレコードに連番をつけることで簡単にページ送りが可能になります。
ここではレコードに連番をつけるSQLを紹介します。
コーディング例
BEGIN
CREATE TABLE #勤怠(
氏名 VARCHAR(10)
,年月日 INT
,出勤 VARCHAR(5)
,退勤 VARCHAR(5)
);
INSERT INTO
#勤怠
VALUES
('佐藤',20190901,'8:53','18:07')
,('田中',20190901,'8:52','19:04')
,('山本',20190901,'8:49','18:12')
,('佐藤',20190902,'9:53','19:07')
,('田中',20190902,'9:52','20:04')
,('山本',20190902,'9:49','19:12')
,('佐藤',20190903,'10:53','20:07')
,('田中',20190903,'10:52','21:04')
,('山本',20190903,'10:49','20:12')
;
SELECT
ROW_NUMBER() OVER (ORDER BY 氏名,年月日) AS [連番]
,*
FROM
#勤怠
;
DROP TABLE #勤怠;
END
実行結果
| 連番 | 氏名 | 年月日 | 出勤 | 退勤 |
|---|---|---|---|---|
| 1 | 佐藤 | 20190901 | 8:53 | 18:07 |
| 2 | 佐藤 | 20190902 | 9:53 | 19:07 |
| 3 | 佐藤 | 20190903 | 10:53 | 20:07 |
| 4 | 山本 | 20190901 | 8:49 | 18:12 |
| 5 | 山本 | 20190902 | 9:49 | 19:12 |
| 6 | 山本 | 20190903 | 10:49 | 20:12 |
| 7 | 田中 | 20190901 | 8:52 | 19:04 |
| 8 | 田中 | 20190902 | 9:52 | 20:04 |
| 9 | 田中 | 20190903 | 10:52 | 21:04 |
ROW_NUMBER()でレコード番号が取得でき、OVER句でORDER BYを指定すると、ORDER BYで指定した並び順でレコード番号が採番されます。
以上、「SQL Serverでレコードに連番を付ける」のご紹介でした。







