易截截图软件、单文件、免安装、纯绿色、仅160KB

pl/sql利用rownum取得排序后的部分行序列

我们使用oracle的人都知道可以通过rownum伪列得到查询结果序列前面的指定的行,为了下面更好的进行说明问题,我们先来创建一个数据表table1:
create table table1
(AAA integer primary key,
BBB varchar(30));
然后在table1中插入9条数据:
insert into table1 values (8, 'good');
insert into table1 values (7, 'morning');
insert into table1 values (20, 'afternoon');
insert into table1 values (2, 'have');
insert into table1 values (19, 'boy');
insert into table1 values (30, 'girl');
insert into table1 values (15, 'left');
insert into table1 values (26, 'think');
insert into table1 values (98, 'beautiful');
commit;
现在使用:
Select * from table1 where rownum < 4;
来得到前三个行。
AAA         BBB
8                     good
7                     morning
20                   afternoon
这没有问题,但如果你对rownum使用了大于号(>),则查询的结果集一定是空的。如:
Select * from table1 where rownum > 1;
无论表中有多少数据,都不会返回任何的数据。我们什么时候会用到rownum大于一个数字进行查询呢,这里先卖一个关子,后面再说。
再来说说排序和rownum的关系:
如果使用
Select * from table1 where rownum < 4 Order by AAA;
我这里查询出来的结果是:
AAA         BBB
7                      morning
8                      good
20                     afternoon
和前面没有Order By时的结果集数据是一样的,只是排了一个序,而我们期望的结果是:
AAA   &nb


相关文档:

sql基础知识

SQL语言由命令、子句、运算和集合函数等构成。在SQL中,数据定义语言DDL(用来建立及定义数据表、字段以及索引等数据库结构)包含的命令有CREATE、DROP、ALTER;数据操纵语言DML(用来提供数据的查询、排序以及筛选数据等功能)包含的命令有SELECT、INSERT、UPDATE、DELETE。
一、SQL语句
(1)Select 查询语句
语法:SE ......

SQL Server数据库设计表和字段的经验


我在设计数据库的时候会考虑到哪些数据字段将来可能会发生变更。比方说,姓氏就是如此(注意是西方人的姓氏,比如女性结婚后从夫姓等)。所以,在建立系统存储客户信息时,我倾向于在单独的一个数据表里存储姓氏字段,而且还附加起始日和终止日等字段,这样就可以跟踪这一数据条目的变化。
采用有意义的字段名
有一回我 ......

SQL注入攻击

 SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序 ......

SQL Substring

 SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分。这个函数的名称在不同的资料库中不完全一样:
MySQL: SUBSTR(), SUBSTRING()
Oracle: SUBSTR()
SQL Server: SUBSTRING()
最常用到的方式如下 (在这里我们用SUBSTR()为例):
SUBSTR(str,pos): 由<str>中,选出所有从第<pos>位置开始 ......

Oracle SQL语句

ORDER BY 排序
 
ASC 升序(默认)
 DESC 降序
 
select * from s_emp order by dept_id , salary desc
部门号升序,工资降序
关键字distinct也会触发排序操作。
 
select * from employee order by 1; //按第一字段排序
NULL被认为无穷大。order by 可以跟别名。
 
select table_name ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号