0

このようなテーブルがあります

ID   Subject       StatusCd     Date
------------------------------------------
1    abc           3            01/03/2013
2    def           1            01/03/2013
3    ghi           2            05/03/2013
4    jkl           3            02/03/2013
5    mno           3            06/03/2013

StatusCd(3, 1, 2)の順序で行を並べ替える SQL クエリを作成するにはどうすればよいですか。また、グループ内の各行をそのグループに基づいてソートしたいと考えていますDate

4

2 に答える 2

3

CASEtheORDER BY句で式を使用できます。

select id, subject, statuscd, date
from yt
order by 
  case statuscd
    when 3 then 0
    when 1 then 1
    when 2 then 2
  end, date

SQL Fiddle with Demoを参照してください。これにより、次の結果が得られます。

| ID | SUBJECT | STATUSCD |       DATE |
----------------------------------------
|  1 |     abc |        3 | 2013-01-03 |
|  4 |     jkl |        3 | 2013-02-03 |
|  5 |     mno |        3 | 2013-06-03 |
|  2 |     def |        1 | 2013-01-03 |
|  3 |     ghi |        2 | 2013-05-03 |
于 2013-04-04T12:03:06.057 に答える