oracle怎么根据顺序排序 Oracle排序语句

如何实现Oracle的自定义排序

1

创新互联是一家专业提供兴安企业网站建设,专注与成都网站制作、成都做网站、H5技术、小程序制作等业务。10年已为兴安众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

2

3

4

5

6

7

8

9

10

11

普通排序SQL是这样的:SELECT NAME FROM TABLE ORDER BY NAME;这时候我们需要按照自己定义的NAME的排序规则进行排序,如按照某个字典ARRAY进行排序,就需要用个临时表来完成如建立表:C_SORT_Tcreatetable C_SORT_T

(

SORT_ID NUMBER(10),

SORT_NAME VARCHAR2(20),

SORT_SEQ NUMBER(10)

)然后把原有的SQL联合排序表进行查询,然后用SORT_SEQ排序就可以了。 如果是SORT array是不固定,而是在排序前传入SQL?该怎么办?如果排序的array不大的话,可以用DECODE来达到要求,如下:SELECT NAME FROM TABLE排序:SELECT NAME,DECODE(NAME,"ARRAY[0]",1,"ARRAY[1]",2,....,9999) SEQ FROM TABLE ORDER BY SEQ

---

SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序

SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序

SCHINESE_PINYIN_M 按照拼音排序

oracle怎么排序

Oracle9i之前,中文是按照二进制编码进行排序的。在oracle9i中新增了按照拼音、部首、笔画排序功能。

1、设置NLS_SORT参数值

SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序 SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序 SCHINESE_PINYIN_M 按照拼音排序

2、Session级别的设置,修改ORACLE字段的默认排序方式:

按拼音:alter session set nls_sort = SCHINESE_PINYIN_M;

按笔画:alter session set nls_sort = SCHINESE_STROKE_M;

按偏旁:alter session set nls_sort = NLS_SORT=SCHINESE_RADICAL_M;

3、语句级别设置排序方式:

按照笔划排序 select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_STROKE_M');

按照部首排序 select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M');

按照拼音排序 此为系统的默认排序方式

select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');

4、修改系统参数(数据库所在操作系统):

set NLS_SORT=SCHINESE_RADICAL_M export NLS_SORT (sh) setenv NLS_SORT SCHINESE_RADICAL_M (csh) HKLC\SOFTWARE\ORACLE\home0\NLS_SORT (win注册表)

oracle怎么按插入顺序排列

oracle按照指定顺序进行排序

实验如下:

1.新建表

CREATE TABLE BR_DICT(

ID number PRIMARY KEY NOT NULL,

D_ITEM VARCHAR2(32),

D_VALUE VARCHAR2(32),

D_TYPE VARCHAR2(32),

D_SORT number

)

2.插入数据

insert into br_dict(id, d_item,d_value,d_type,d_sort) values

(10, '10', '测试1', '', 0);

insert into br_dict(id, d_item,d_value,d_type,d_sort) values

(11, '11', '测试2', '', 1);

insert into br_dict(id, d_item,d_value,d_type,d_sort) values

(12, '12', '测试3', '', 2);

insert into br_dict(id, d_item,d_value,d_type,d_sort) values

(13, '13', '测试4', '', 3);

insert into br_dict(id, d_item,d_value,d_type,d_sort) values

(14, '14', '测试5', '', 4);

insert into br_dict(id, d_item,d_value,d_type,d_sort) values

(15, '15', '测试6', '', 5);

3.两种查询方式

a.instr函数在Oracle/PLSQL中是返回要截取的字符串在源字符串中的位置来自定义排序方式

select * from br_dict d where d.d_value like '%测试%' order by instr( '3,1,2,0,5,4',rtrim(cast(d_sort as nchar)));

b.运行decode定义某个字符的排序位置类似的实现排序方式

select * from br_dict d where d.d_value like '%测试%' order by decode(d_sort, '3', '01', '2', '02', '1', '03', '0', '04', '5', '05', '4', '06');

oracle 怎么指定排序?

可以通过 “order by 字段名 asc (desc)” 命令进行排序。

sql:select * from tablename order by id DESC;

用 DESC 表示按倒序排序(即:从大到小排序) ,用 ACS 表示按正序排序(即:从小到大排序)。

oracle数据表数据如何排序,比如按照日期排序

1、首先在oracle建立数据表的时候,对表的命名有以下规范:以字母开头表名长度不能超过30个字符,不能使用oracle保留关键字,可以使用A-Z,a-z,0-9,#,$等。

2、如果表名中包含特殊字符是直接报错的。如下图使用了  *。

3、在建立表的时候,数字也是不能使用表名的开始的。

4、但如果使用双引号对表名进行规范的话,是可以建立以数字或者包含特殊字符的表名的。

5、过这样建立的表名,在查询数据的时候是非常麻烦的,查询时也要加双引号。而且这样建立的表名,在项目运行的过程中也非常容易造成各种麻烦,所以尽量不要使用。

oracle中某个表中如何让一些数据按某一顺序排列.其余不用管

1.'gyzl_bzpwl_tb'

为要修改的表名,注意表名一定要大写!此句可以获取表的id。

select

object_id

from

all_objects

where

object_name='gyzl_bzpwl_tb'

2.查看表中的字段名和序号,其中后面的条件就是我们第一步中查出来的表id

select

obj#,col#,name

from

sys.col$

where

obj#=38370; 

3.直接修改表

sys.col,col#列就是字段的顺序列,可以通过修改这列的值来实现字段顺序的修改。


网站标题:oracle怎么根据顺序排序 Oracle排序语句
标题来源:http://hbruida.cn/article/hhgisg.html