当前位置:首页 » 数据仓库 » oracel数据库怎么排列
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

oracel数据库怎么排列

发布时间: 2022-10-04 08:00:29

A. oracle 数据库查询排序问题

有个偷懒的方法

假设每个.分割的数字不超过4位数

写个函数在通过.分割获得数字,然后将所有的数字均补齐为4位,前面加'0'

再排序就正常了

------------------------------------

图片是我做的一个测试表的结果,第一个字段是测试数据

涉及的函数如下:

CREATEORREPLACEFUNCTIONGETNUM(strINVARCHAR2)

RETURNNUMBER

IS

numNUMBER:=0;

pNUMBER;

iNUMBER:=2;

BEGIN

p:=NVL(length(regexp_replace(str,'[^.]','')),0);

WHILEp>1andi<=ploop

BEGIN

num:=num+TO_NUMBER(substr(str,instr(str,'.',1,i-1)+1,instr(str,'.',1,i)-instr(str,'.',1,i-1)-1))*GETBL(i);

i:=i+1;

END;

ENDLOOP;

IFp=0THEN

num:=TO_NUMBER(str);

ELSEIFp=1THEN

num:=TO_NUMBER(substr(str,1,instr(str,'.',1,1)))+TO_NUMBER(substr(str,instr(str,'.',1,1)+1));

ELSE

num:=num+TO_NUMBER(substr(str,1,instr(str,'.',1,1)))+TO_NUMBER(substr(str,instr(str,'.',1,p)+1))*GETBL(p+1);

ENDIF;

ENDIF;

RETURNnum;

END;

-------

CREATEORREPLACEFUNCTIONGETBL(pINNUMBER)

RETURNNUMBER

IS

numNUMBER:=1;

iNUMBER:=1;

BEGIN

WHILEi<pLOOP

BEGIN

num:=num*0.001;

i:=i+1;

END;

ENDLOOP;

RETURNnum;

END;

B. oracle数据库中多个null值存在时怎样排序

排序要看用什么字段排序,可以单个字段,也可以多个字段,这些与存在值是否为null无关。
如下列数据
id
name
class
1

a

1
2

b

null
3

c

null
现在要按id和class排序,其中id为主要排序字段,class为次要排序字段
可写如下语句
select * from 表名 order by id,class

C. oracle数据库中 什么属性 才能排序

1 DBMS string 所使用的数据库管理系统的名字,如Sybase,Oracle,ODBC。
2 Database string 要连接的数据库名字。
3 UserID string 连接数据库所用的用户名。有的DBMS不需要此项。
4 DBPass string 用户连接数据库的口令。
5 Lock string 这是数据库的保护级别,一般不必给出。
6 LogID string 登录到数据库服务器上的用户名,有的DBMS不需要此项,但Sybase和Oracle需要指定这个参数。
7 LogPass string 登录到数据库服务器上的用户口令。这个属性可设可不设,但Sybase和Oracle需要指定口令。
8 ServerName string 数据库服务器名。
9 AutoCommit boolean 指定是否将数据库设置成自动提交所有事务。默认是False,也就是说,必须在应用程序中进行事务管理,并在适当的时候对数据库提交事务。如果选择True,则每个事务都由系统自动提交。
10 DBParm string 用于向数据库传递特殊信息的属性。
11 sqlCode long 指示最近一次SQL操作失败或成功。它的取值为: 返回结果 0 无错误。 -1 出现一个错误。 100 没有检索到数据。
12 SQLNRows long 最近一次SQL操作影响的行数,数据库不同其含义也不同。
13 SQLDBCode long 数据库错误代码。不同的数据库的含义不同。
14 SQLErrText string 相应于SQLDBCode属性中错误码的文字说明。
15 SQLReturnData string 返回DBMS执行SQL的附加信息,不同的DBMS其值不同。

D. oracle怎么把数据库表按照表大小排序

看你怎么理解数据量了,如果是按照表的行数
select table_name,blocks,num_rows
from dba_tables
where owner not like '%SYS%' and table_name not like '%$%'
order by num_rows desc;
如果是按照表占用的数据块排序
select table_name,blocks,blocks
from dba_tables
where owner not like '%SYS%' and table_name not like '%$%'
order by blocks desc;
上面的where条件是为了筛除系统表,不过写的并不详细,你可以根据自己的具体要求改写.

E. 关于Oracle数据库插入数据排序的问题

正常现象。sql中没有使用order by的情况下,查询结果集的返回次序本来就是不受保证的

F. 怎样设计oracle数据库让插入的数据就是按顺序排列的

按照什么顺序?
普通的表不成,有一种表叫做索引组织表,索引和数据放在一起的。这种表可以实现你想要的功能。

G. oracle数据库怎么同时进行两次排序

order by 字段A , 字段B
现根据A排序,再根据B排序

H. oracle数据库中怎样依据成绩实现排名

首先,来构造一些数据

drop table test;
create table test
(
name varchar2(10),
account number(5)
);

insert into test values ('张三','5');
insert into test values ('王五','10');
insert into test values ('小二','10');
insert into test values ('李四','20');
insert into test values ('小三','40');
insert into test values ('小四','50');
insert into test values ('小五','90');
insert into test values ('小六','90');
insert into test values ('小七','90');
commit;

下面来看一下一些方式的排名结果:

1. select t.*,dense_rank() over(order by t.account asc) 排名 from test t;

I. oracle怎么把数据库表按照表大小排序

看你怎么理解数据量了,如果是按照表的行数
select
table_name,blocks,num_rows
from
dba_tables
where
owner
not
like
'%SYS%'
and
table_name
not
like
'%$%'
order
by
num_rows
desc;
如果是按照表占用的数据块排序
select
table_name,blocks,blocks
from
dba_tables
where
owner
not
like
'%SYS%'
and
table_name
not
like
'%$%'
order
by
blocks
desc;
上面的where条件是为了筛除系统表,不过写的并不详细,你可以根据自己的具体要求改写.

J. oracle数据库单表查询并且按照主键ID排序

id用1,2,3,4,5.....纯数字的,你怎么会把它定义为varchar类型?
解决步骤:
(1)新建一个表A,表结构和ib_sql 一样,但把id定义为NUMBER类型。
(2)把ib_sql 中的所有数据插入到A中:INSERT INTO A SELECT * FROM ib_sql ;
(3)DROP TABLE ib_sql;
(4)把表A改名为ib_sql: ALTER TABLE A RENAME TO ib_sql;
(5)再执行你上面的语句就可以实现排序