oracle中如何排序 oracle中使用什么对结果进行排序

oracle中不用ORDER BY怎么实现排序?

ORDER BY的含义就是通过某个字段进行排序(默认是ASC,可以省略)。\r\nsql:select * from scores order by score DESC;\r\n以上语句就是通过score字段进行降序排序。\r\nsql:select * from scores order by score ;\r\n以上语句就是通过score字段进行升序排序。\r\n备注:DESC表示降序,ASC表示升序。

创新互联建站专注于颍州企业网站建设,成都响应式网站建设公司,商城系统网站开发。颍州网站建设公司,为颍州等地区提供建站服务。全流程按需求定制网站,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务

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怎么排序

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中的中文排序方式

测试中文排序的数据库版本

SQL select * from v$version;

BANNER

Oracle Database g Enterprise Edition Release Production

PL/SQL Release Production

CORE          Production

TNS for Linux: Version Production

NLSRTL Version Production

创建测试表

create table player (id number( ) name varchar ( ));

检查字符集配置

确认数据库字符集 american_america AL UTF

SQL  select  name value$  from  props$;

NAME                           VALUE$

DICT BASE                     

DEFAULT_TEMP_TABLESPACE        TEMP

DEFAULT_PERMANENT_TABLESPACE   USERS

DEFAULT_EDITION                ORA$BASE

Flashback Timestamp TimeZone   GMT

TDE_MASTER_KEY_ID

DEFAULT_TBS_TYPE               SMALLFILE

NLS_LANGUAGE                   AMERICAN

NLS_TERRITORY                  AMERICA

NLS_CURRENCY                   $

NLS_ISO_CURRENCY               AMERICA

NLS_NUMERIC_CHARACTERS        

NLS_CHARACTERSET               AL UTF

NLS_CALENDAR                   GREGORIAN

NLS_DATE_FORMAT                DD MON RR

NLS_DATE_LANGUAGE              AMERICAN

NLS_SORT                       BINARY

NLS_TIME_FORMAT                HH MI SSXFF AM

NLS_TIMESTAMP_FORMAT           DD MON RR HH MI SSXFF AM

NLS_TIME_TZ_FORMAT             HH MI SSXFF AM TZR

NLS_TIMESTAMP_TZ_FORMAT        DD MON RR HH MI SSXFF AM TZR

NLS_DUAL_CURRENCY              $

NLS_P                       BINARY

NLS_LENGTH_SEMANTICS           BYTE

NLS_NCHAR_CONV_EXCP            FALSE

NLS_NCHAR_CHARACTERSET         AL UTF

NLS_RDBMS_VERSION             

GLOBAL_DB_NAME                 ORA G

EXPORT_VIEWS_VERSION          

WORKLOAD_CAPTURE_MODE

WORKLOAD_REPLAY_MODE

DBTIMEZONE                     :

rows selected

SQL

深入确认字符集

SELECT DISTINCT (NLS_CHARSET_NAME(CHARSETID)) CHARACTERSET

DECODE(TYPE#

DECODE(CHARSETFORM VARCHAR NVARCHAR UNKOWN )

DECODE(CHARSETFORM VARCHAR NCHAR VARYING UNKOWN )

DECODE(CHARSETFORM CHAR NCHAR UNKOWN )

DECODE(CHARSETFORM CLOB NCLOB UNKOWN )) TYPES_USED_IN

FROM SYS COL$

WHERE CHARSETFORM IN ( )

AND TYPE# IN ( );

确认操作系统字符集设置

[ora g@bj ~]$ export NLS_LANG=american_america al utf

填写测试数据

SQL insert into player values ( 下午啦 );

row created

SQL insert into player values ( 八千米死亡线 );

SQL set pagesize

SQL  select * from player;

ID NAME

中文

中文拼音

笔画输入法

测试啊

下午啦

八千米死亡线

rows selected

SQL

开始测试 发现三个查询语句返回的结果一致

SQL select * from player order by    nlssort(name NLS_SORT=SCHINESE_RADICAL_M );

ID NAME

笔画输入法

中文

下午啦

中文拼音

测试啊

八千米死亡线

rows selected

SQL select * from player order by nlssort(name NLS_SORT=SCHINESE_STROKE_M );

ID NAME

笔画输入法

中文

下午啦

中文拼音

测试啊

八千米死亡线

rows selected

SQL select * from player order by nlssort(name NLS_SORT=SCHINESE_PINYIN_M );

ID NAME

笔画输入法

中文

下午啦

中文拼音

测试啊

八千米死亡线

rows selected

囧 疑似碰上bug 切换到 gR 下看看

SQL select * from v$version;

BANNER

Oracle Database g Enterprise Edition Release Prod

PL/SQL Release Production

CORE        Production

TNS for Linux: Version Production

NLSRTL Version Production

SQL select * from player order by nlssort(name NLS_SORT=SCHINESE_PINYIN_M );

ID NAME

八千米死亡线

笔画输入法

测试啊

下午啦

中文

中文拼音

rows selected

SQL select * from player order by nlssort(name NLS_SORT=SCHINESE_STROKE_M );

ID NAME

八千米死亡线

下午啦

中文

中文拼音

测试啊

笔画输入法

测试服务器

rows selected

SQL select * from player order by nlssort(name NLS_SORT=SCHINESE_RADICAL_M );

ID NAME

下午啦

中文

中文拼音

八千米死亡线

测试啊

笔画输入法

测试服务器

rows selected

SQL

这个结果似乎比较符合预期结果

NLS_SORT=SCHINESE_RADICAL_M  按照部首排序

NLS_SORT=SCHINESE_STROKE_M 按照笔画排序

lishixinzhi/Article/program/Oracle/201311/17664


网站栏目:oracle中如何排序 oracle中使用什么对结果进行排序
转载注明:http://myzitong.com/article/hjsgcd.html