oracle中排序能固定吗?

来源:百度知道 编辑:UC知道 时间:2024/06/30 13:05:23
我有指定的几项,在oracle中有办法按照我要求的顺序进行固定排列吗?
我知道有ASC和DESC两种排序,但是我不要这样,其中有些东西的顺序需要按照我的要求来排序,请问有什么函数可用吗?
比如:我设置一列为name,其中各项为:张三,李四,王五,赵三,一般按升序或者降序排列的话,肯定就是按拼音的顺序,但是我想就指定为现在的:张三,李四,王五,赵三这个顺序

可以啊,你在order by的时候指定排序的顺序
先跑这个:
select * from (select 1 id,'赵六' name from dual union
select 2,'王五' from dual union
select 3,'李四' from dual union
select 4,'张三' from dual)

再跑这个比对下:
select * from (select 1 id,'赵六' name from dual union
select 2,'王五' from dual union
select 3,'李四' from dual union
select 4,'张三' from dual)
order by case name when '张三' then 1
when '李四' then 2
when '王五' then 3
when '赵六' then 4 end

方法一 oracle默认是按输入数据时的顺序显示的
方法二 你最好查阅下有关非聚焦索引的资料.

详细需求发上来

你得说你怎麼要求啊