• ベストアンサー

SQL文でランクをつける

SQL文でランクをつける方法を教えてください。 例ですが、100点までの点数データがあるとして 4段階にランクをつけたい。 ~30点までが「D」 ~50点までが「C」といった具合に SQL SERVERです。

質問者が選んだベストアンサー

  • ベストアンサー
  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.2

CASE...ENDを使います。詳細は以下にあるとおりです。 Transact-SQL リファレンス CASE http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/tsqlref/ts_ca-co_5t9v.asp

SQL
質問者

お礼

初歩的な事でしたが、すっかり忘れていました ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

CASE式を使用すれば簡単だと思います。 SELECT C1,C2,C3, CASE WHEN C3<=30 THEN 'D' WHEN C3<=50 THEN 'C' WHEN C3<=70 THEN 'B' ELSE 'A' END AS "RANK" FROM T1

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • SQL文がわかりません。

    SQL文がわからなく困っております。 下記のデータ*01を*02のデータのようにSELECTするためには、 どのようなSQL文を書けばよいのかお教えいただけますでしょうか? DBはoracle11gです。 ※01 ID      所属部署 _____________________________    1     a    1     b     2     a    2     b    2     c    3     a    3     b    3     c    3     d ____________________________ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ※02  ID   所属部署    所属部署2   所属部署3   所属部署4 _________________________________________   1         a         b 2         a         b         c 3         a         b         c         d

  • SQL文で

    すみません。質問させてください。 A,B,C,D,Eと5個のフィールドで構成されたテーブルtableがあるとします。 tableにはデータがすべて格納され(NULLなし)ています。 ですが、フィールドA,C,DについてA,C,Dとも同じデータが格納される ことがあります。 その重複したデータ以外を取得したいのですが (要するにフィールドA,C,Dでユニークのデータのみ取得) SQL文でどのように書けばいいかわかりません。 よろしくお願いいたします

  • SQLでランク付け

    表1 キー 金額 ランク 1 465 2 257 3 54 4 99 5 0 6 87 7 101 8 500 9 21 表2 ランク ランク基準 C  100以下 B   200以下 A   300以下 S   300以上 表1の金額を表2でランク付けしたい。 例えば1番465円ならSランク 2番257円ならAランク みたいな感じで。 SQL文はかなり初心者ですので、調べてもカーソルやらFETCHとかまったく意味わからんくて、お願いします。教えてください。 これはお勧めというサイトとか本もあればお願いします。 今週中に覚えないとやばい、今かなりやばい......

  • SQL文の書き方について

    SQL文の書き方について教えてください。 VBでSELECT分を書く場合、表示項目の間に空白(スペース)を入れて書きますが、これってレスポンスに影響が有りますか? 例 SELECT A,       B,       C FROM TBL という具合に記述します。 自分の経験上だと、レスポンスには影響がでないと思いますがどうなんでしょうか・

  • SQL(SELECT文)を教えてください

    SQL Serverを勉強中です。 以下のようなテーブルに、同一の日付に複数の名称・値のセットが存在します。 Date(日付)  Name(名称) Value(値) 20130101      a      10 20130101      b      20 20130101      c      30 20130202      a      5 20130202      b      10 20130202      c      15 このデータを、SQLのSELECT文で取得し、以下のような表を作りたいと考えています。 a b c 20130101 10 20 30 20130202 5 10 15 行が日付、列が名称になっています。 このように取得できるSQL文を教えてください。よろしくお願いします。

  • PATH を返してくれるような SQL 文の書き方について

    DBサーバ+APサーバの構成です。 APサーバで動くプログラムより SQL 文を発行して、 SQLServer2005 のデータを取得できる環境にあります。 やりたいことは、BACKUP DATABASE 文を、APサーバのプログラム から発行し、DBサーバ上にバックアップデータを保存することです。 DBサーバのフォルダ構成が環境によってまちまちなので、 SQL文を投げて、DBサーバのフォルダを取得したいのですが、 SQLServer のシステムテーブルなどに格納されていたりは しないでしょうか。 表領域のフルパス名、SQLServer インストールフォルダなどを 取得できる方法があれば教えてください。 宜しくお願いします。

  • ACCESSのクエリで、ランクテーブルを使ってランク付けをしたい

    例えば次のような処理をしたいのですが、適切な方法がわかりません。宜しくお願いいたします。 <ランクテーブル> 最低  最高 ランク 81 100  A 41  80  B  0  40  C <成績データ> 山田 28点 加藤 89点 成績データにランクデータを反映させ、上記の例では山田のランクを”C”に、加藤のランクを”A"と表示するクエリを作りたいと思います。EXCELなら簡単ですが、ACCESSではどのようにすればいいのでしょうか? 宜しくお願いいたします。

  • 条件文を使ったグループ出力SQL文

    SQL初心者です。な~んだこんな事くらいと言わず教えてください。 テーブルに A B C ------------ 5 a b 7 c d 4 a d 5 f b ------------ というデータがあります。 これを Bの列については、aとa以外 Cの列については、bとb以外 というようにグルーピングして、合計値を出したいと思っています。 結果として a b 5 a b以外 4 a以外 b 5 a以外 b以外 7 という形の出力イメージです。 調べてみてcase when文を使えばいいなんてことをなんとなく理解しているのですが、group byと組み合わせてどのようにSQL文を書けばいいかわかりません。 SQL Serverを使っています。ご存知の方、ご教授ください。

  • SQL文について

    OracleやSQLについてはまだ初心者のレベルで理解が浅いので言葉足らずかもしれませんがよろしくお願いします。 以下のようなテーブル(名称:TBL)があったとします。 SHOP_CODE------SHOP_NUMBER----MONEY1------MONEY2 A ---------------- 1 ---------------- 100 ------------- 200 B ---------------- 2 ---------------- 300 ------------- 400 C ---------------- 3 ---------------- 500 ------------- 600 D ---------------- 4 ---------------- 700 ------------- 800 例えば、SHOP_CODEがA~Dのどれかの行(レコード)はそのまま抽出して、残った行(レコード)はMONEY1およびMONEY2を0に変更して抽出しようとした場合、 SELECT * FROM TBL WHERE SHOP_CODE = 'ここはA~Dのどれかを代入' UNION SELECT SHOP_CODE, SHOP_NUMBER, 0, 0 FROM TBL WHERE SHOP_CODE <> 'A~Dのどれかを代入' このようなSQL文を考えてみました。 しかし、比較的簡単な例ならばよいのですが、UNION前のSELECT文が複雑になってきた場合のことを考え以下のような文の作りかたができないかと思いました。 SELECT * FROM TBL WHERE SHOP_CODE = 'ここはA~Dのどれかを代入'・・・『この時点で抽出した塊になんらかの名称をつける(例:tbl)』 UNION SELECT SHOP_CODE, SHOP_NUMBER, 0, 0 FROM TBL WHERE SHOP_CODE <> tbl.SHOP_CODE・・・『このようにUNION以前に抽出した塊の名称を利用して条件を作成』 このような方法ができるとした場合、前段階で抽出した塊にどのような方法で名称をつけるのか分かりませんでした。(汗)そもそもできるかどうかもわかりませんが、、、(^^; 最初のSQL文がベターな方法なのかも分かりませんが、上記に示した方法で抽出することが可能でしょうか?もしできるのならば、前述したように名称をつけて条件を作成する方法等を教えていただきたいと思います。 おおよそ話を分かっていただければよいのですが、ものすごく簡単に言うと一つのテーブルのある行とある行に別々の処理をして再構成したいというようなイメージです。(今回はMONEYを0にすると仮定しました) できれば上記の方法に沿った考えで回答をいただけると私も助かりますが、もっと良い方法があれば是非伺いたいと思います。お時間の方ありましたらよろしくお願いします。

  • ACCESSとSQLサーバのSQL文の違い

    始めまして。 SQLについては初心者なのですが データベースACCESSからSQLサーバにする場合 SQL文の記述方法が違うと聞いたのですが 具体的にどのような違いがあるのでしょうか? 例)SEEKが使えない、日付のくくりが""→## など こういった違いが判るサイトなどもありましたら教えていただけると幸いです。 ご回答、よろしくお願いします。

PIXUS XK500 ICCプロファイル
このQ&Aのポイント
  • mac OSでPIXUS XK500のICCプロファイルを設定する方法について教えてください
  • PIXUS XK500のICCプロファイル設定に関する情報を教えてください
  • mac OSでのPIXUS XK500のICCプロファイルの設定手順を教えてください
回答を見る