oracle查询第一条记录,oracle取第n条数据

  oracle查询第一条记录,oracle取第n条数据

  一、经过测试,通过以下方法:

  SELECT * FROM

  (

  选择表名。*,ROWNUM AS CON FROM表名,其中ROWNUM=M,其他查询条件按排序条件排序

  )

  哪里CON

  第二,参考网上其他方法。

  SQL/Oracle从m到n中取出记录的方法

  用一个SQL语句取出m-n记录的方法

  用一个SQL语句取出m-n记录的方法

  获取表中从m到n的记录:(不在版本中)

  选择前n-m 1 *

  来自表格

  其中(id不在(从表中选择前m-1个id))

  -从表中取出m到n条记录(Exists版本)

  从表中选择前n-m 1 *作为不存在的a

  (Select * From(Select Top m-1 * From TABLE order by id)b其中b.id=a.id)

  按id排序

  -m是上标,n是下标,比如取出第8到第12条记录,m=8,n=12,table是表名。

  从表格中选择前n-m 1 *

  其中Id(选择最大(Id) From

  (从表Order By Id Asc中选择Top m-1 Id)Temp)

  按Id Asc排序

  一楼【房东】2007-03-02 10:38

  直接获取数据库中的分页记录。

  前提是表中必须有主键。

  获取m条记录后的n条记录:

  选择前N名*

  来自[表格]

  我不在

  (选择顶部M id

  来自[表格]

  ORDER BY [ORDER])

  按顺序排列

  在Oracle中实现,获取m到n条记录:SELECT * FROM

  (

  SELECT *,ROWNUM作为CON FROM

  (

  SELECT * FROM[表]ORDER BY[顺序]

  )

  其中ROWNUM=N

  )

  哪里CON

  回复参考视图

  查询表中的一些连续记录。

  不要传递任何列的条件参数,查询表中的一些连续记录。

  例如,在表A中,A,id列是主键

  身份证姓名性别年龄

  -

  1罗衣男21

  2丫丫女20

  3丽丽女22

  4吴勇男性25

  ...

  这个表中还有很多记录。如果我要拿第二第三张唱片,不出意外的话,我要这两张。这个不仅会用在编程上,在一些公司面试中也会有类似的考题(呵呵,没遇到过)。在oracle和mssqlserver中,SQL代码是:

  一.甲骨文

  在oracle中不能使用top关键字,但是可以通过两种方式使用rownum。

  1.(select * from A where rownum=4)减去(select * from A where rownum=1)

  所以你会得到两个,三个或者两个记录。Minus关键字的意思是求两个结果集的差集。数学上有这个概念。例如,两个集合可以是合并的、共享的和差异的集合。

  2.代码select * from(select * from a where row num 4)b where b . id not in(select id from a where row num 2)也可以是实数。主要使用not in运算符。

  第二,ms sql server

  服务器没有减号,只能用类似oracle的第二种方法。

  select * from(select top 3 * from A)as b where b . id not in(select top 1 id from A)

  第三,得出的结果如下:

  身份证姓名性别年龄

  -

  2丫丫女20

  3丽丽女22

  回复参考视图

  查询数据库中的n条记录,然后对这n条记录进行排序。

  看到这个主题,有人会写这句话,

  select top 10 * from tablename order by create time

  这句话的意思正好和主题相反。

  正确答案1:

  select top 10 * from TableName where id in(select top 10 id from TableName order by id)order by create time

  这个语句,可以找到表中的前10条记录,然后按createtime时间排序。

  是的,表中需要一个主键。

  2个答案

  没有主键也可以。

  选择*

  从(选择前10名*

  来自标题)嗯

  按DESC出版日期排序

  回复参考视图

  随机取出几条记录的SQL语句

  Sql server:

  Select 20 * from table order by newid()

  访问:

  按Rnd(id)从表中选择20 *

  Rnd(id)其中id是自动编号字段,它可以由任何其他数值来完成。

  例如使用名称字段(用户名)

  select 20 * from table ORDER BY Rnd(len(UserName))

  MySql:

  select * From table Order By rand()Limit 20

  回复参考视图

  作者:yanek

  email:yanek@126.com

  特点:一次查询,数据库只返回一页数据。而不是拿出所有的数据。

  描述:

  Pagesize:每页显示的记录数

  Cureentpage:当前的页数

  SELECT * FROM(SELECT TOP pagesize * FROM(SELECT TOP pagesize * curent page * FROM user _ table ORDER BY id ASC)as a stable ORDER BY id desc)as b stable ORDER BY id ASC

  示例描述:

  如果数据库表如下:

  用户_表格:

  Id:主键,自增

  用户名:字符

  密码:字符

  假设有80条记录,每页显示id从1到80的10条记录。

  现在按id升序取出的第三页的数据应该是:获得的记录的id应该是21到30。

  此时,该语句应读作:

  SELECT * FROM(SELECT TOP 10 * FROM(SELECT TOP 30 * FROM user _ table ORDER BY id ASC)作为按id DESC的不稳定订单)作为按id ASC的不稳定订单

  原理如下:

  首先按id升序取出30条记录(3*10),即id在1到30之间的记录(按ID ASC从user _ table order中选择top 30 *)

  然后,这30条记录按ID降序排列,记录从30到1。

  然后从这30条记录中取出前10条记录:得到的记录是:id在30到21之间。这是我们需要的数据,但是是降序排列,不符合要求。

  最后,我们重新排序,得到我们需要的最终数据。Id介于21和30之间

oracle查询第一条记录,oracle取第n条数据