按名称列表排序,然后按其余数据排序

时间:2014-05-22 13:30:11

标签: sql oracle sql-order-by

我有一个包含列名的表。 我想通过名单列表来订购,然后通过列的其余部分订购。

例如这是列表:

RAM
DPR
OOM

表数据:

name
---
ABI
TRE
BBR
DPR
OOM
RAM

查询结果将是:

name
---
RAM
DPR
OOM
ABI
BBR
TRE

我不知道如何开始查询,除了:

select name from tab order by ....

1 个答案:

答案 0 :(得分:1)

您可以使用order by

中的条件执行此操作
order by (case when name in ('RAM', 'DPR', 'OOM') then 0 else 1 end),
         name

如果您希望列表按特定顺序排列:

order by (case when name = 'RAM' then 1
               when name = 'DPR' then 2
               when name = 'OOM' then 3
               else 4
          end), name