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
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-12-02
select top n * from tbl

sql server 怎么查询前n条数据
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]...

对于sql中查询一个表中前几条记录应该怎么查询
看你是什么数据库,如果是sqlserver2005(是05版本还是07版本忘记了)以上或者oeacle的话,那么用select * from table where rownum<=N;就可以,这里的N是一个变量,假如你要查前5条,那么就把N改为5就可以。如果是mysql,那么利用top,select top 5 * from table;现在的一些新的mysql版本好像也有...

SQL查询前几条记录
各种不同的数据库查询前N条记录,都不一样,现在总结了一下,列了出来: 1. ORACLE SELECT * FROM TABLE1 WHERE ROWNUM<=N 2. INFORMIX SELECT FIRST N * FROM TABLE1 3. DB2 SELECT * ROW_NUMBER() OVER(ORDER BY COL1 DESC) AS ROWNUM WHERE ROWNUM<=N或者SELECT COLUMN FROM TABLE ...

SQL查询怎么返回前N列数据
select top 1 id,成绩 from 你的表 order by id asc union select top 1 id, 成绩 from (select *, 第一个成绩=(select top 1 成绩 from 你的表 order by id asc) from 你的表 ) ttt where 成绩 + 第一个成绩 > 100 order by id asc ...

如何按时间查询sql数据库中的数据?
方法一:使用RAND()函数。RAND()函数生成0到1之间的随机数,通过ORDER BY RAND()对数据进行随机排序,配合LIMIT N,即可取前N条数据。然而,这种方法在大表中执行效率可能较低。方法二:使用NEWID()函数。NEWID()在SQL Server中用于生成唯一标识符,每次调用都会产生新的值,适用于随机排序。方法三:...

2005 sql server 查询某行数据的前N行数据
查询前N行数据:select top N * from table

sybase怎样通过sql获取前N条记录?麻烦告诉我
看,在SQL SERVER 中前n行是没有实现实现基础的.Oracle\/MS SQL SERVER 是有隐式的 identity 列的 所以可以用 select top n 字段 from 表 或者 select * from tablename where rowid between 100 and 110 如果认为这是SYBASE的不足,我觉得那是肤浅的表现了 去年刚接触的时候,也是满地问人,现在...

查询前几条记录SQL在不同数据库中的用法
查询前几条记录SQL在不同数据库中的用法;1. ORACLE SELECT * FROM TABLE1 WHERE ROWNUM<=N 2. INFORMIX SELECT FIRST N * FROM TABLE1 3. DB2 SELECT * ROW_NUMBER() OVER(ORDER BY COL1 DESC) AS ROWNUM WHERE ROWNUM<=N 或者 SELECT COLUMN FROM TABLE FETCH FIRST N ROWS ONLY 4. ...

SQL如何显示查询结果的前100条?
SQL语句显示查询结果前100条在不同的数据库查询语句不同,分别是:1、在 sqlserver数据库中:SET ROWCOUNT 100 GOSELECT * FROM 表名 ;2、在Oracle数据库中:select * from 表名 where rownum<=100;3、在mysql数据库中:select * from 表名 limit 0,100,使用idea进行示例如下:...

sql server怎么查询当前记录的前后各3条记录
查询前后3条记录的写法:SELECT *FROM Sales.SalesOrderDetailWHERE SalesOrderDetailID IN (SELECT TOP 3 MIN(SalesOrderDetailID) SalesOrderDetailIDFROM Sales.SalesOrderDetailUNION ALLSELECT TOP 3 MAX(SalesOrderDetailID) SalesOrderDetailIDFROM Sales.SalesOrderDetail)...

相似回答