- ベストアンサー
OracleSQLでのOrder byについて
Order byについて教えてください。 下記の様な状態にOrder Byするにはどのようにしたらよいでしょうか? ・基本的にはA列でソートする ・BとCの組み合わせで同じ物があれば、そのデータの直下にソートできる A B C ----------------- 111 123 001 111 124 001 222 234 001 333 234 001 222 345 001 222 456 001 333 135 001 333 246 001
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- seimurakam
- ベストアンサー率61% (21/34)
関連するQ&A
- SQL文「DISTINCT」の「ORDER BY」について
SQL文「DISTINCT」の「ORDER BY」について教えて下さい。 A列をDISTINCTで重複行の排除をしています。 その後、B列でORDER BYをかけたいのですが、エラーが 出てしまいます。A列でのORDER BYは成功します。 何か良い方法があれば教えて下さい。 よろしくお願いします。 SQL="SELECT DISTINCT A列 from table " &_ "WHERE (table.C列='100') " &_ "ORDER BY (table.B列) ASC " ⇒エラー "ORDER BY (table.A列) ASC " ⇒成功
- ベストアンサー
- SQL Server
- ORDER BY CASEで異なる並替えをするには
(状態)-(分類) 状態a-03 状態a-02 状態a-01 状態b-01 状態c-02 状態b-03 状態d-04 状態e-01 状態e-02 状態e-03 mysql上のデータを上記のように並べたいるために、 まず(状態)をまとめるために次の通りorder by caseを使いました。 select * from data order by case 状態 when '状態a' then 1 when '状態b' then 2 when '状態c' then 2 when '状態d' then 2 when '状態e' then 3 else 4 end しかし、分類が状態aの場合と(状態bからd)の場合で (分類)の値に対する並び替えを変更することができません。 どうやったら、上記の並び替えができるのか、教えていただけると幸いです。
- 締切済み
- MySQL
- SQL ORDER BYにおける条件について
SQLのORDER BY句について質問です。 項目A,B,Cがあり、 項目AがNULLの場合 → ORDER BY 項目B,項目C 項目AがNULL以外の場合 → ORDER BY 項目A,項目C としたいのですが、どう指定すればいいでしょうか? 色々と調べたところ、CASE文を使用する?のかなと思って いるのですが、具体的には回答を得ていません。 お手数ですが、ご回答宜しくお願い致します。 ※使用DBはOracle10です。
- 締切済み
- Oracle
- ORDER BYで並び替えなんですが…
$result = mysql_query('SELECT * FROM hoge ORDER BY LPAD(NUMBER, 5, 0)') ; で並び替え(ソート)をすると 1 2 3 4 5 6 7 8 9 a 10 11 12 13 という結果で表示されます。 これを 1 2 3 4 5 6 7 8 9 10 11 12 13 a というように並び替えて表示させたいのですが…orz どのように構文を書けば宜しいのでしょうか?? いろいろ調べてみたのですが、それらしい内容のものが 見つからずに途方に暮れています。 どなたか御教授頂ければ幸いです。 宜しくお願い致します。
- ベストアンサー
- MySQL
- UNION / UNION ALL 時のORDER BY について
初めて質問させていただきます。 表A(以下,TBL_A) と 表B(以下,TBL_B)があり,表名が 異なるだけでカラムの項目数,データ型は一致していてそれぞれ [TBL_A] SELECT * FROM TBL_A ORDER BY 1, 2 [TBL_B] SELECT * FROM TBL_B ORDER BY 2, 1 を UNION / UNION ALL したいのですが,上記のように ORDER BY が異なっている場合にはどのようにすれば いいのでしょうか? 苦戦中の成果物としてはそれぞれに固有の区分カラムを設け, その区分で判断し DECODE で ORDER BY しようとしたのですが 「"右カッコがありません"」と出て行き詰っています。 SELECT 区分, ○○, □□ FROM TBL_A WHERE ○○ = ??? UNION ALL (SELECT 区分, ○○, □□ FROM TBL_B) ORDER BY 区分, DECODE(区分,A,(1,2),B,(2,1)) 宜しくお願いします。
- 締切済み
- Oracle
- order by区の記述位置
以下のようなsqlを書いた場合、 (入れ子になった内側でorderbyを記述している) 6行目に書いたorderbyの動作(ソートキーの降順に並ぶこと)は oracle,sql server等、各環境で保障されるのでしょうか? 以下の例ではうまく動作していたのですが(oracle) 入れ子が多くなった場合もうまくうごくのでしょうか? -------------------- select a.* from ( select a.ソートキー from テーブル a union all select a.ソートキー from テーブル b order by ソートキー desc ) a -------------------- 自分は、order by は最後に書くものだと思っていたのですが、 たまたま上記のような入れ子になった内側でソートしているソースを見ることがあり みなさんにお話をうかがいたく質問させていただきました。 よろしくお願いいたします。
- ベストアンサー
- Oracle
- 3つのテーブルを使ったselecct文でのorder by とgroup by の使い方について
下記のようなSQL文を作成しましたが、 baseテーブルにあるu_dateというものでソートしたいと思っています。 u_dateは日付が入っていますが、order by だけ追加してもエラーになってしまい、group by を追加 すると、idとp_numが同じものであるのに、日付が違うものがあるので、group分けされてしまい、何個も表示されてしまいます。(idとp_numで一つのものと考えているので、一つのidに対して複数のものが選択されていることもあります) 何かよい解決策はないでしょうか? select b.id,b.name,b.p,b.a,b.i_date,w.p_name,p.p_num from base as b,win as w,pre as p where 1=1 and w.id = b.id and b.kind=1 and b.deleteflag=0 and w.win_flag=0 and p.p_num = w.p_num group by w.id,b.id,b.name,b.p,b.a,b.i_date,w.p_name,p.p_num order by w.id desc,p.p_num
- ベストアンサー
- PostgreSQL
- Order by句でバインド変数を使うには?
SQL文のOrder by句で2つのバインド変数を用いて、ソートする項目・ソート順を決めたいと思い、以下のようなSQLを作成いたしました。 Select row_Number() Over(Order by Case :ITEM When 'PJコード' then PJコード When '部署コード' then 部署コード end Case :LINE When '1' then DESC When '2' then ASC end .... バインド変数を直接Order by句に入れますと、結果は帰ってくるのですが、バインド変数の値がすべて無視されてデータが出力されます。 以上の理由より、Case文にてバインド変数の値を参照し、ソートする項目と順番を決めております。 上記のソースで実行しますとORA-00907:右かっこがありませんというエラーが表示されます。 2つ目のCase文(:LINE)を消し、最初のCase文だけを残して、並び順(DESC・ASC)を埋め込むと、実行される状態になります。 Oracleのバージョンは11gです。 ご回答よろしくお願いいたします。
- ベストアンサー
- Oracle
- PL/SQLにて、マスタから取得した値をORDER BY句に指定したい
どなたかお判りになる方、ご教示ください。 ★やりたいこと PL/SQLにて、マスタから取得した値をORDER BY句に指定したい。 (例)以下のようなマスタがあるとします。 -------------------------- ソートマスタ SORT_MST ソート順 SORT_ORDER ソート項目 SORT_ITEM ソート種別 SORT_SBT -------------------------- この「ソートマスタ」の「ソート項目」には、以下のトランザクションテーブルの物理カラム名が格納されています。 -------------------------- トラン TRN 商品種別 ITM_SBT 商品コードITEM_COD 商品名 ITEM_NM 金額 ITM_AMN -------------------------- PL/SQLにて「ソートマスタ」から値取得後、「ITEM_COD ASC,ITM_AMN ASC」という文字列を作成し、「トラン」検索時にORDER BY句に指定したのですが、ORDER BY句が全く効いてくれません。 お忙しいところ恐れ入りますが、ご存知の方、よろしくお願い致します。
- ベストアンサー
- Oracle
- order by について
質問させてください。 下記テーブルがあるとします。 [samle_tbl](フィールドa, b(integer)) ====== a|b ====== 2|* *|4 3|5 4|2 *|1 2|6 1|2 (※*はNULLデータ) 上記のテーブルでa, bフィールドにおいて数字の大きいレコード順に取得したいとかんがえています。 2|6 3|5 *|4 4|2 2|* 1|2 *|1 簡単にいうとa, bフィールドの値においてどちらかの数値がa, bフィールド内において降順にレコードをシュとくしたいです。 同じ順番に値する場合*(NULLデータ)を含むレコードと含まないレコードの順番は気にしません。 どのようなSQLを実行すれば取得できますでしょうか?
- ベストアンサー
- その他(データベース)
- Lenovo Pen Proの芯がすり減って困っています。
- 替え芯は販売されていないようですが、使い切った場合の対応策は?
- Lenovoのノートブック(ThinkPad)に関する質問です。