3

を持つデータベースを検討してください

checkID record_number   data    Order_number
a                0        1        2
a                1        2        0
a                2        3        1
a                3        4        3

Order_number 列に従ってレコードを取得するクエリを検索します。ieprocedure はデータを返す必要があります。

having record _number 2 then
having record _number 0 then
having record _number 1 then
having record _number 3 

これに対する結合または他のクエリはありますか?

4

5 に答える 5

1

この状況では、CASEWHENを使用できます。;

SELECT  *
FROM    tbl
ORDER BY CASE record_number
              WHEN 2 THEN 1
              WHEN 0 THEN 2
              WHEN 1 THEN 3
              WHEN 3 THEN 4
              END

これがSQLFiddleDEMOです。

| CHECKID | RECORD_NUMBER | DATA | ORDER_NUMBER |
-------------------------------------------------
|       a |             2 |    3 |            1 |
|       a |             0 |    1 |            2 |
|       a |             1 |    2 |            0 |
|       a |             3 |    4 |            3 |
于 2013-02-20T10:07:54.563 に答える
1

最善の解決策は、次のように、並べ替えチェック用の追加のテーブルを作成することです。

record_number   sort_seq
     2              1
     0              2
     1              3
     3              4

次に、テーブルと結合します

select c.* 
from check as c 
     join sortSeq as s on c.record_number=s.record_number 
order by s.sort_seq
于 2013-02-20T10:11:50.797 に答える
1
SELECT *
FROM tablename
ORDER BY CASE WHEN record_number = 2 THEN 0 ELSE 1 END, record_number;

SQL フィドルのデモ

これにより、次の順序でデータが提供されます。

| CHECKID | RECORD_NUMBER | DATA | ORDER_NUMBER |
-------------------------------------------------
|       a |             2 |    3 |            1 |
|       a |             0 |    1 |            2 |
|       a |             1 |    2 |            0 |
|       a |             3 |    4 |            3 |
于 2013-02-20T10:06:42.077 に答える
1
select  *
from    YourTable
order by
        case record_number
        when 2 then 1
        when 0 then 2
        when 1 then 3
        when 3 then 4
        end
于 2013-02-20T10:06:56.363 に答える
0
SELECT *
FROM tablename
ORDER BY Order_number 
于 2013-02-20T10:41:33.907 に答える