
失礼致します。
質問させてください。
今テーブルに下のように値が入っています。
No 名前
1 そのこ
2 さちえ
3 あやこ
4 ともよ
5 ひろみ
6 うめこ
このテーブルにおいて
名前があ行、か行、さ行の人をNoの昇順で表示し、続けて名前がそれ以外の人のレコードをNoの降順で表示したいです。結果を次のようにしたいです。
2 さちえ
3 あやこ
6 うめこ
5 ひろみ
4 ともよ
1 ののこ
sqlを2回発行するのは避けたいです。
ヒントだけでもいいので教えてください。
よろしくお願いします。m(__)m
No.2ベストアンサー
- 回答日時:
希望の検索結果を得られるSQL例を示します。
このSQLでは、、、
(1)あ行、か行、さ行で始まる名前の場合は、10000-No(つまりNoが小さいほど、大きな数字になる)をソートで使用
(2)あ行、か行、さ行以外で始まる名前の場合は、Noをソートで使用
という方法を取り、ソートは降順にしています。
これにより、(1)のケースはNoの昇順、(2)のケースはNoの降順が簡単なSQLで実現できます。
【SQL例】
select No,名前
from t1
order by
case
when substr(名前,1) between 'あ' and 'そ' then 10000-No
else No
end desc
;
難か難しそうですが、おっしゃっていることは分かります。
関連する10000-Noのところを勉強してみます。
ありがとうございました。m(__)m
また、質問の件なのですが、
SQL = (select No, Name from t1 where Name = *** order by No ASC) union (select No,Name from t1 where Name = *****)
という形で解決しました。
()でくくるのが例題からはなかなか見抜けず手間取りました。
No.3
- 回答日時:
あとはテンポラリに流し込むとかもありますね。
CREATE TEMPORARY TABLE `TEMP`
SELECT `No`,`名前`
FROM `テーブル`
WHERE SUBSTRING(`名前`,1,1) BETWEEN 'あ' AND 'そ'
ORDER BY `名前` ASC;
INSERT INTO `TEMP`
SELECT `No`,`名前`
FROM `テーブル`
WHERE NOT(SUBSTRING(`名前`,1,1) BETWEEN 'あ' AND 'そ')
ORDER BY `名前` DESC;
SELECT * FROM `TEMP`;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
葉 植物 食べ物 サラダ 名前 食...
-
複雑なシフト表から1日ごとの...
-
ESTA
-
大学 カンニング 名前書き忘れ
-
彼氏が「君」っていいます
-
みなさん、恋人のLINEの名前は...
-
会員制の共同墓碑を近々に作り...
-
Hの最中に違う女の名前を言わ...
-
彼女にLINEで「〇〇(下の名前)...
-
女子に聞きたい。 異性に名前は...
-
分限帳 読める方いますか。
-
名前を呼ばずに「すみません」...
-
男の名前
-
彼氏が良く、「◯◯(私の名前)」...
-
性行為中に
-
何で名乗ってないし、相手の事...
-
私の名前は莉奈(りな)です あ...
-
「○○Jr.」という名前の人はもう...
-
キラキラネーム
-
リトルツインスターズ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複雑なシフト表から1日ごとの...
-
えっち中・名前
-
小泉農相がネット古古古米の名...
-
名前を呼ばずに「すみません」...
-
キラキラネーム
-
息子が名前が原因でいじめられ...
-
「○○Jr.」という名前の人はもう...
-
電話をかけてきて、社名だけで...
-
男で一人称が自分の名前って珍...
-
みなさん、恋人のLINEの名前は...
-
性行為中に
-
彼氏が良く、「◯◯(私の名前)」...
-
男の名前
-
Hの最中に違う女の名前を言わ...
-
名前を呼ばれる方と、名前を呼...
-
エクセルで外部データの取り込...
-
リトルツインスターズ
-
LINEの名前をちょこちょこ変え...
-
ESTA
-
自分の名前について。 私の名前...
おすすめ情報