oracle数组怎么排序,oracle分组排序函数

oracle怎么排序

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

成都创新互联-专业网站定制、快速模板网站建设、高性价比玉树网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式玉树网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖玉树地区。费用合理售后完善,十多年实体公司更值得信赖。

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

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

sql:select * from tablename order by id DESC;

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

oracle使用数组添加元素后,排序输出

#includeiostream

using namespace std;

void main() {

int n;

cin n;

int* a=new int[n];

int* order=new int[n];

for(int i=0; in; i++) {

cin a[i]; order[i]=0;

}

int eqNum=0;

for(int ord=1; ord+eqNum=n; ord++) {

int first=0;

while(order[first]!=0) first++;

// cout "ord: " ord ", first: " first ;

int min=a[first], minAt=first;

for(int j=first+1; jn; j++) {

if(order[j]!=0) continue;

if(a[j]min) { min=a[j]; minAt=j; }

}

// cout ", minAt: " minAt ", min: " min endl;

int ord0=ord;

order[minAt]=ord0;

for(int k=minAt+1; kn; k++) {

if(a[k]==min) { order[k]=ord0; eqNum++; }

}

}

for(int i=0; in; i++) {

if(i0) cout " ";

cout order[i];

}

}

oracle 生成数字后,按从大到小进行排序,内详,急!

DECLARE

A1 NUMBER;

TEMP VARCHAR2(120);

A2 NUMBER;

SIXNUM VARCHAR2(120);

TYPE EMP_SSN_ARRAY IS TABLE OF NUMBER

INDEX BY BINARY_INTEGER;

BEST_EMPLOYEES EMP_SSN_ARRAY;

BEGIN

SIXNUM:=' ';

TEMP:=' ';

A1:= 0;

WHILE (LENGTH(SIXNUM)14) LOOP

LOOP

--生成号码

A1 := A1 + 1;

A2 := FLOOR( DBMS_RANDOM.VALUE(1,33));

IF A2 10 AND A2 0 THEN

BEST_EMPLOYEES(A1) :='0'||A2;

DBMS_OUTPUT.PUT_LINE(BEST_EMPLOYEES(A1));

ELSE

BEST_EMPLOYEES(A1) := A2;

DBMS_OUTPUT.PUT_LINE(BEST_EMPLOYEES(A1));

END IF;

IF INSTR(SIXNUM,BEST_EMPLOYEES(A1),1,1)=0 THEN --找不到

SIXNUM:=SIXNUM||' '||BEST_EMPLOYEES(A1);

EXIT;

END IF ;

END LOOP;

END LOOP;

DBMS_OUTPUT.PUT_LINE('--------------------------------');

FOR I IN 1..BEST_EMPLOYEES.COUNT - 1 LOOP

FOR II IN I..BEST_EMPLOYEES.COUNT LOOP

IF BEST_EMPLOYEES(I) BEST_EMPLOYEES(II) THEN

--DBMS_OUTPUT.PUT_LINE(BEST_EMPLOYEES(I));

TEMP := BEST_EMPLOYEES(I);

BEST_EMPLOYEES(I) := BEST_EMPLOYEES(II);

BEST_EMPLOYEES(II) := TEMP;

END IF;

END LOOP;

END LOOP;

FOR I IN 1..BEST_EMPLOYEES.COUNT LOOP

DBMS_OUTPUT.PUT_LINE(BEST_EMPLOYEES(I));

END LOOP;

END;

/

Oracle在哪儿进行数据的排序操作?

在会话内存的sort_area中,这部分空间属于用户全局区(UGA),但是UGA具体在哪儿得看你的服务器环境。如果使用专用服务器模式,UGA的位置位于PGA(程序全局区)中;如果使用共享服务器模式并且设置了大池(large pool),UGA位于SGA的large pool中,如果没有设置large pool,UGA位于SGA的shared pool中。


网站标题:oracle数组怎么排序,oracle分组排序函数
文章路径:http://ybzwz.com/article/dssdejp.html