(別のCategoryに載せてしまいましたがみつかりませんので、正しいCategoryで再掲載しています。)

T-SQL: Order By の使い方について (初心者です)

下のような順番で結果を求めています。
Item NO QTY
P001    10
P002      8
P003    20
N001    13
N002    50
Q001    5
Q002    33
Q003     6

Table内のItemNOはA001から alphabetと3桁番号の順番でY005まであるものとして、上記のP,N,QのItemNoのものだけをこの順番で求めたいのです。
もちろん、WHERE-clauseにはこの8件のItemNOの指定はしてあります。

Order by left(ItemNO, 1) DESC (またはASCE), substring(ItemNo, 2,4) ASC
これでは、P,N,Qの順番にはなりません。
最初にP Number、次にN Number、最後にQ Numberを出すにはどうしたらいいのでしょうか。
Order Byの次に8個のItemNOを上記の順番に書いて指定することはできるのでしょうか。
Order Byには "Case When" が使えるとあるinternetで見たのですが、もし使えるとしたらこの順番をだすのに使えるのでしょうか。

ご指導お願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

こうしたらどうでしょうか。


order by
case substring(itemNo,1,1)
when 'P' then 1
when 'N' then 2
when 'Q' then 3
else 99
end
, itemNo

SQLServerの環境がないので動作確認はしていませんが・・・
    • good
    • 0
この回答へのお礼

完璧に動きました。
今まで喉に詰まっていたのですっきりしました。
ありがとうございました。感謝いたします。

お礼日時:2011/04/14 02:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QORDER BYを条件に一致した順にしたい

たとえば、
SELECT 果物名 FROM 果物種類 WHERE 色 = '赤' OR 値段 < 100
というようなSQL文を書いたとして、
「ORDER BY」 として ”値段 < 100”を先に、
”色 = '赤' ”を後に というような指定はできますか?

Aベストアンサー

ORDER BY (CASE WHEN 値段 < 100 THEN 1 ELSE 2 END)
でどうでしょう。

QInner join と Left joinの明確な違いは?

Inner join と Left joinの違いがよくわかりません。
教えてください。

Aベストアンサー

出てくる結果が違います。

テーブル1のフィールド1に、






が、

テーブル2のフィールド1に、






が入力されている場合、

SELECT [テーブル1].[フィールド1], [テーブル2].[フィールド1]
FROM テーブル1 LEFT JOIN テーブル2 ON [テーブル1].[フィールド1]=[テーブル2].[フィールド1];
では、結果は、
テーブル1.フィールド1 テーブル2.フィールド1
1               1
2               2
3               3
4               NULL
5               NULL
6               NULL
の6レコードが出力されますが、

SELECT [テーブル1].[フィールド1], [テーブル2].[フィールド1]
FROM テーブル1 INNER JOIN テーブル2 ON [テーブル1].[フィールド1]=[テーブル2].[フィールド1];
では、結果は、
テーブル1.フィールド1 テーブル2.フィールド1
1               1
2               2
3               3
の3レコードしか出力されません。

出てくる結果が違います。

テーブル1のフィールド1に、






が、

テーブル2のフィールド1に、






が入力されている場合、

SELECT [テーブル1].[フィールド1], [テーブル2].[フィールド1]
FROM テーブル1 LEFT JOIN テーブル2 ON [テーブル1].[フィールド1]=[テーブル2].[フィールド1];
では、結果は、
テーブル1.フィールド1 テーブル2.フィールド1
1               1
2               2
3           ...続きを読む


人気Q&Aランキング

おすすめ情報