1

Suppose I got a table Tbl1 (C1, C2, C3)

C1-C2-C3
A - 2 - 6
N - 6 - 7
C - 9 - 4
K - 3 - 5

& another table OrderOfTbl1 (C1, customOrder int)

C1 - customOrder
K - 1
N - 2
C - 3
A - 4

Now, I can do all sort of query on Tbl1 & the result can be any order
N - 6
A - 2
K - 3

So, how to make this result sorted as the Order stated in OrderOfTbl1 table?

I don't wanna to do the Join between these 2 tables, I prefer the "Order by Case .... Then ...." solution since it is more natural.

4

2 に答える 2

2

結合を使用するのが最善の選択です。ただし、明示的に参加することを避けたい場合は、次のようにすることができます。

SELECT t.*
FROM table1 t
ORDER BY (SELECT customOrder FROM orderoftbl1 ot WHERE t.c1 = ot.c1)

これが機能するための要件は、SELECT内部ORDER BYがスカラーを返すことです。

于 2013-04-21T03:02:24.103 に答える