スカラー関数による順位付け |
対象バージョン : 2002(ADP), 2003(ADP)
最終更新日 :
2005/04/25
(オリジナル作成日:2001/08/05)
概 要
順位付けを行いたいテーブル "成績" にフィールド "クラス", "出席番号", "得点" があるものとし、クラスごとに得点の高い順に順位を振るものとします。
同じ得点の者は同順位とします。
手 順
1.スカラー関数の作成
データベースウィンドウのオブジェクトの "クエリ"
を選択し、"新規作成(N) " を選択。
「新しいクエリ」ダイアログが表示されますので、"テキスト スカラー関数の作成"
を選択し、[OK] ボタンを押します。
2.関数 の入力
CREATE FUNCTION 順位 ( @クラス CHAR(1), @得点 INT ) RETURNS Int AS BEGIN RETURN( SELECT COUNT(*) + 1 FROM 成績 WHERE クラス = @クラス AND 得点 > @得点 ) END |
保存すると、所有者名が関数名に自動的に修飾されます。
dbo.順位
3.関数をビューで利用する例
データベースウィンドウのオブジェクトの "クエリ"
を選択し、"新規作成(N) " を選択。
「新しいクエリ」ダイアログが表示されますので、"デザイン
ビュー"
を選択し、[OK] ボタンを押します。
「テーブルの追加」ダイアログで "成績"
を選択し、[追加(A)] ボタンを押した後、[閉じる(C)]
を押します。
補 足