重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

sqlserver前六条,sql 前十条

对于sql中查询一个表中前几条记录应该怎么查询

看你是什么数据库,如果是sqlserver2005(是05版本还是07版本忘记了)以上或者oeacle的话,那么用select * from table where rownum=N;就可以,这里的N是一个变量,假如你要查前5条,那么就把N改为5就可以。

作为一家“创意+整合+营销”的成都网站建设机构,我们在业内良好的客户口碑。创新互联提供从前期的网站品牌分析策划、网站设计、成都网站制作、成都做网站、创意表现、网页制作、系统开发以及后续网站营销运营等一系列服务,帮助企业打造创新的互联网品牌经营模式与有效的网络营销方法,创造更大的价值。

如果是mysql,那么利用top,select top 5 * from table;现在的一些新的mysql版本好像也有rownum的概念了,记得不是那么清什么版本了。

SQL语句如何取前10条,10-30条记录?

常用几种数据库,取前10条记录的sql语句写法。

access:

select top (10) * from table1 where 1=1

db2:

select column from table where 1=1 fetch first 10 rows only

mysql:

select * from table1 where 1=1 limit 10

sql server:

读取前10条:select top (10) * from table1 where 1=1

读取后10条:select top (10) * from table1 order by id desc

oracle:

select * from table1 where rownum=10

取10-30条的记录:

select top 20 * from 表名 where id not in(select top 10 id from 表名)

扩展资料:

使用SQL从表中取记录。

SQL的主要功能之一是实现数据库查询。如果你熟悉Internet 引擎,那么你已经熟悉查询了。你使用查询来取得满足特定条件的信息。

多数Internet 引擎允许逻辑查询。在逻辑查询中,你可以包括特殊的运算符如AND、OR和NOT,你使用这些运算符来选择特定的记录。

如果需要扩展查询的结果,可以使用逻辑操作符OR。例如,如果执行一个搜索,搜索所有的其描述中包含Active Sever Pages  OR  SQL的站点,收到的列表中将包括所有其描述中同时包含两个表达式或其中任何一个表达式的站点。

如果想从搜索结果中排除特定的站点,可以使用NOT。例如,查询“Active Sever Pages ”AND NOT “SQL”将返回一个列表,列表中的站点包含Active Sever Pages,但不包含SQL。当必须排除特定的记录时,可以使用NOT。

用SQL执行的查询与用Internet搜索引擎执行的搜索非常相似。 当执行一个SQL查询时,通过使用包括逻辑运算符的查询条件,你可以得到一个记录列表。此时查询结果是来自一个或多个表。

sql server 怎么查询前n条数据

1.

Oracle数据库

SELECT

*

FROM

TABLENAME

WHERE

ROWNUM

=

N

2.

Infomix数据库

SELECT

FIRST

N

*

FROM

TABLENAME

3.

DB2数据库

SELECT

*

FROM

(SELECT

*

ROW_NUMBER()

OVER({ORDER

BY

COL1

DESC})

AS

ROWNUM

FROM

TABLENAME)

WHERE

ROWNUM

=

N

或者

SELECT

COLUMN

FROM

TABLENAME

FETCH

FIRST

N

ROWS

ONLY

4.

SQL

Server数据库

SELECT

TOP

N

*

FROM

TABLENAME

5.

Sybase数据库

SET

ROWCOUNT

N

GO

SELECT

*

FROM

TABLENAME

6.

MySQL数据库

SELECT

*

FROM

TABLENAME

LIMIT

N

7.

FoxPro数据库

SELECT

*

TOP

N

FROM

TABLENAME

ORDER

BY

COLUMN

以下示例从表

[tableName]

中读取符合查询条件的前10条记录的SQL语句

1.Access

select

top

(10)

*

from

[tableName]

where

[query

condition]

1.1

带order

by的查询限制

Access中对select

top的语句支持有限,如果要在查询top语句的后面使用order

by,则order

by排序字段必须是无重复值,如果有重复值的话,那么这个TOP很可能会失效,会返回所有记录。

解决办法:在order

by

最后面加入主键id,如:

select

top

10

from

[tableName]

order

by

排序字段1,id

1.2

带子查询的示例

假如id是表[tableName]的主键,以下语句期望返回三条记录,但结果返回4条记录

select

top

3

*

from

[tableName]

where

id

in(是个子查询,结果比如为1,2,3,4)

解决办法

select

top

3

*

from

[tableName]

where

id

in(是个子查询,结果比如为1,2,3,4)

order

by

id

2

DB2

select

column

from

[tableName]

where

[query

condition]

fetch

first

10

rows

only

3

MySQL

select

*

from

[tableName]

where

[query

condition]

limit

10

4

SQL

Server

4.1

读取前10条

select

top

(10)

*

from

[tableName]

where

[query

condition]

4.2

读取后10条

select

top

(10)

*

from

[tableName]

order

by

id

desc

4.3

按照某个排序,第5到10这几个记录

select

top

6

*

from

[tableName]

where

id

not

in(select

top

4

id

from

[tableName])

5

Oracle

select

*

from

[tableName]

where

rownum=10

SQLServer中使用语句取各分类中的前几条记录

建立表结构如下: CREATE table [dbo].[tmp_Trans]( IDintidentity, PO_NO varchar(20) null, PO_Itemno varchar(20) null, Qty numeric(18,6) null, Trans_Date datetime null, Doc_no varchar(20) null)要求取相同PO_NO按Trans_Date倒序排序的前两条记录。 1.Where子句嵌套SELECT的方式。在嵌套的SELECT语句中可以与主表的字段相关联,达到分类的目的。 这种方式又有三种写法: 1)如果表中有主键,可以用IN的方式。 SELECT * FROM tmp_Trans t WHERE ID IN( SELECT TOP 2 ID FROM tmp_Trans WHERE PO_NO=t.PO_NO ORDER BY Trans_Date DESC)2)如果没有主键,可以用判断在本条记录前有多少条记录的方式。但使用这种方式时如果遇到Trans_Date相同的情况会不准。如当存在Trans_Date最大的记录有三条时,这三条记录都会查出来。 SELECT *FROM tmp_Trans tWHERE (SELECT COUNT(*) FROM tmp_Trans WHERE PO_NO=t.PO_NO AND Trans_DateT.Trans_Date)23)使用CROSS APPLY子句。CROSS APPLY是SQL Server 2005后出来的新功能,用于在表连接时传入参数。 SELECT DISTINCT b.* FROM tmp_Trans a CROSS APPLY(SELECT TOP(2) * FROM tmp_Trans WHERE a.PO_NO=PO_NO ORDER BY Trans_Date DESC) b 2.使用自动生成的Row Number。在使用ROW_NUMBER()时可以用PARTITION BY子句来分组。建议使用这种方式。select * from (


网站栏目:sqlserver前六条,sql 前十条
文章位置:http://cqcxhl.com/article/dssoigi.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP