
No.4ベストアンサー
- 回答日時:
こういうこと?
//元データ
create table hoge(address int,nyukai date,id int);
insert into hoge values(1,'2013-01-01',201),(1,'2013-01-02',204),(1,'2013-01-03',202),(1,'2011-01-04',203),
(2,'2013-02-04',101),(2,'2013-02-02',102),(2,'2013-02-01',103),(2,'2011-02-03',104),
(3,'2013-03-01',301),(3,'2013-03-02',302);
//表示
SELECT address,nyukai,id
FROM hoge
WHERE address in(1,2)
ORDER BY case address when 1 then 1 when 2 then 2 else 3 end ASC,
case address when 1 then nyukai when 2 then id end ASC
もとの処理だとnagoyaだろうがnyukaiで一度ソートがかかるためidでソートされません。
No.3
- 回答日時:
#2です。
可能です。SORT用のキーをでっち上げましょう。
変数の型によっては、「入会年月日」と「ID」を「桁揃えした文字列に」編集してください。
SELECT ~
CASE address WHEN '1' THEN 入会年月日 WHEN '2' THEN ID ELSE 'more' END as SortKey
FROM ~
WHERE ~
ORDER BY address ASC, SoryKey ASC
;
No.2
- 回答日時:
まず、テーブル構造の確認。
列「在住」があって、値「東京」と「名古屋」を持ってる?
それとも列「東京在住」と列「名古屋在住」があるのですか?
> 下記のように書けば
からすると、後者っぽいですね。
だとすると列「東京在住」・「名古屋在住」の値は何でしょう?
列「東京在住」に該当するレコードだけ拾うWhere条件付け、値「1」を返す列を設け、名前を付けるSelect文を作る。
同様に列「名古屋在住」を拾い、値「2」を返す列を東京と同じ列名で設け、unionでつなぐ。
ORDER BYを、新たに設けた列名、IDとするとか。
列「在住」が値「東京」と「名古屋」を持つ場合でも、同じように「東京」なら値1を
「名古屋」なら値2を返すようにしておいて
ORDER BYを、在住、IDとするとか。(UNION不要)
この回答への補足
説明不足で大変申し訳ございません。
東京在住で入会年月日順に昇順で出力をして、
続けて、名古屋在住でIDを基準に昇順で出力したいと思っています。
実際は addressというカラムがあり、データーベースには、
東京は1、名古屋は2という値で入っています。
下記のような感じですが、
(1)は昇順で出力しましたが、(2)はidで昇順で出力されません。
SELECT ~ FROM ~ WHERE ~ ORDER BY address='1',nyukai ASC,address='2',id ASC,
どうしても、同時に出力をしたいのですが、無理なのでしょうか?
よろしくお願いいたします。
(1)
address nyukai
----------------------
東京 2013/01/01
東京 2013/01/02
東京 2013/01/03
東京 2011/01/04
(2)
address id
----------------------
名古屋 101
名古屋 102
名古屋 103
名古屋 104
No.1
- 回答日時:
> ORDER BY tokyo,nyukai ASC,nagoya,id ASC,
tokyoというカラムとnagoyaというカラムがあるということでしょうか?
東京在住の上、名古屋に在住というわけのわからない状態ですが・・・
仮にその運用が正しいとすれば、東京、入会、名古屋の全てが同じデータ同士で
あればidでソートされると思います
たとえばaddressというカラムをつくってそこにtokyoやnagoyaという
データを保持してみては?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
よか石けんの口コミや評判
-
1テーブル&複数レコードの更新...
-
”photo id” とは何ぞや?
-
クエリ表示と、ADOで抽出したレ...
-
一つ前のレコードの値と減算し...
-
Unionした最後にGROUP BYを追加...
-
select文のwhere句に配列を入れ...
-
「SELECTして取得できない場合...
-
PL/SQLの変数について
-
mysqlのデータから連続する日数...
-
ストアドのエラーについて
-
NOT INをNOT EXISTSで書き直したい
-
ソート順の一番若い者を取得する
-
Updateの複数テーブル条件時のL...
-
INで抽出した順番に並び替え(S...
-
SQLサーバから、項目の属性(型...
-
inner joinをすると数がおかし...
-
ある条件の最大値+1を初番する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
VIEWの元のテーブルのindexって...
-
エラー 1068 (42000): 複数の主...
-
SQLサーバから、項目の属性(型...
-
select文のwhere句に配列を入れ...
-
SQL Left Join で重複を排除す...
-
Access パラメータクエリをcsv...
-
マイクラPC版のコマンドで効率...
-
【Transact-sql】 execの結果を...
-
sqlで、600行あるテーブルを100...
-
SQLにて特定の文字を除いた検索...
-
1テーブル&複数レコードの更新...
-
PL/SQLの変数について
-
WordpressのContact form 7でzi...
-
複数テーブルのGROUP BY の使い...
-
バインド変数について
-
inner joinをすると数がおかし...
-
MySQLのint型で001と表示する方...
-
updateを1行ずつ実行したい。
おすすめ情報