SQL Q&A

 

SELECT時にカウントアップ

下のように、あるテーブルをSELECTしたときに、
[NO]を定義して、[NO]にカウントをセットする。
ただし、カーソルは使用しない方法を
知っている方いますか?

<テーブル項目>
本部、部、課
<SELECT実行後>
NO 本部  部    課
-------------------------
1 東京  総務   総務
2  東京  人事   採用
3  東京  営業   営業1
4  東京  営業   営業2
このエントリーをはてなブックマークに追加
2014-08-25 12:46:45   1555

コメント

2014年 09月 02日 (12:05)
こんにちは。
イノ(inno)です。

[NO]にカウントをセットする方法としては
ROW_NUMBERを使えばできます。
ROW_NUMBERはSQL SERVER 2005以上から使えます。

ROW_NUMBERについては下記のリンクをご参考ください。
http://www.innoya.com/Board/ViewTip.aspx?menuID=4&idx=491

では、質問についてSQLを作成してみましたので、
下記のSQLを実行して頂いてご確認ください。

-- #### テーブル作成
CREATE TABLE dbo.TempData
(
[本部] nvarchar(10)
, [部] nvarchar(10)
, [課] nvarchar(10)
)


-- #### データ登録
INSERT INTO dbo.TempData ([本部], [部], [課])
VALUES (N'東京', N'総務', N'総務')
INSERT INTO dbo.TempData ([本部], [部], [課])
VALUES (N'東京', N'人事', N'採用')
INSERT INTO dbo.TempData ([本部], [部], [課])
VALUES (N'東京', N'営業', N'営業1')
INSERT INTO dbo.TempData ([本部], [部], [課])
VALUES (N'東京', N'営業', N'営業2')

-- #### 結果抽出
SELECT ROW_NUMBER() OVER (ORDER BY [本部] ASC, [部] DESC, [課] ASC) AS [NO]
,[本部], [部], [課]
FROM dbo.TempData

-- #### 実行結果
NO 本部 部 課
-------------------- ---------- ---------- ----------
1 東京 総務 総務
2 東京 人事 採用
3 東京 営業 営業1
4 東京 営業 営業

SQL SERVER 店舗毎のTOP10

-.日付:2015-12-22   カテゴリ : -   閲覧数:477

SQLServer Management Studio サーバーへの接続履歴を削除したい  (1)

-.日付:2015-03-09   カテゴリ : -   閲覧数:1668

sql server 2008 でselect文のwhere句にcaseを使って複数条件をセットしたい

-.日付:2015-02-12   カテゴリ : -   閲覧数:1300

IDENTITY列の複数テーブルへのINSERT  (1)

-.日付:2014-10-02   カテゴリ : -   閲覧数:1373

Sqlのパフォーマンスについての質問です。  (1)

-.日付:2014-08-27   カテゴリ : -   閲覧数:1244

SELECT時にカウントアップ  (1)

-.日付:2014-08-25   カテゴリ : -   閲覧数:1555

「char」と「varchar」は何か違いがあるのでしょうか?  (1)

-.日付:2014-07-30   カテゴリ : -   閲覧数:1261

Copyright © 2015 INNOYA.COM All rights reserved. RSS