❶ sqlserver 查询出每种分类的前10条
这里假设表格为:一个类型表和一个新闻表,取出类型表中的每个新闻类型都查出新闻表中属于该类型的最新的前10条
select标题,编号,时间,类型编号,类型名称from
(select
RANK()OVER(PARTITIONBY新闻表.类型编号ORDERBY新闻表.时间DESC)AS
RANK2,标题,编号,时间,新闻表.类型编号,类型名称from
新闻表leftjoin类型表On新闻表.类型编号=类型表.类型编号)T
whereRANK2<=10
❷ 从SQl中查询数据,只显示前10条数据,无论有没有数据,10行始终显示,空白即可。怎么实现啊
设表名及结构为:TABLENAME(FIELD1,FIELD2,FIELD3)
这样:
select
top
10
FIELD1,FIELD2,FIELD3
from
(
SELECT
SORTSTR=0,FIELD1,FIELD2,FIELD3
FROM
TABLENAME
union
SELECT
SORTSTR=1,FIELD1='',FIELD2='',FIELD3=''
union
SELECT
SORTSTR=2,FIELD1='',FIELD2='',FIELD3=''
union
SELECT
SORTSTR=3,FIELD1='',FIELD2='',FIELD3=''
union
SELECT
SORTSTR=4,FIELD1='',FIELD2='',FIELD3=''
union
SELECT
SORTSTR=5,FIELD1='',FIELD2='',FIELD3=''
union
SELECT
SORTSTR=6,FIELD1='',FIELD2='',FIELD3=''
union
SELECT
SORTSTR=7,FIELD1='',FIELD2='',FIELD3=''
union
SELECT
SORTSTR=8,FIELD1='',FIELD2='',FIELD3=''
union
SELECT
SORTSTR=9,FIELD1='',FIELD2='',FIELD3=''
union
SELECT
SORTSTR=10,FIELD1='',FIELD2='',FIELD3=''
)
a
order
by
SORTstr
思路是,1、查询中加一个排序字段,用来次空记录放到最后。
2、写出10个空记录查询与主表连接。
这样,无论主表有多少条记录,都能显示10条记录,不足的用空记录补充
语句看似很多,其实10行空记录只要写一行,其余复制即可。
❸ 如何在sqlserver中查询某张表的前10行数据
SELECT TOP 10 * FROM 表名
❹ 查询数据库中的前10条记录
SQL Server查询前N条记录:
因为id可能不是连续的,所以不能用取得10<id<20的记录的方法。
有三种方法可以实现:
一、搜索前20条记录,指定不包括前10条
语句:
select top 20 * from tbl where id not in (select top 10 id from tbl)
二、搜索记录生成临时表,建立临时表的自增id。通过取得自增id的10<id<20的记录的方法取得所需数据
语句:
select identity(int,1,1) as id,* into #temp from tbl;
select * from #temp where id between 10 and 20
第二个方法实际上是两条语句,但你可以让他连续执行,就像一条语句一样完成任务。
三、如果觉得第一种方法效率太低,经过讨论,得出第三种方法:
语句:
SELECT TOP 10 * FROM (SELECT TOP 20 * FROM tblORDER BY id) as tbl2 ORDER BY tbl2.id DESC
❺ 常用几种数据库,取前10条记录的sql语句写法
MYSQL
查询语句+LIMIT+10 取查询记录的前十条。
如:SELECT * FROM Test LIMIT 10
查询语句+LIMIT+2,10 取查询语句,从第二条记录,取十条记录。
如:SELECT * FROM Test LIMIT 2,10
❻ 怎么使用sql server查询显示第10条到第20条信息
1、sql查询前10条数据:
select top 10 * from tablename where 1=1;1
2、oracle查询前10条数据:
select * from tablename where rownum<=10;1
oeacle中没有top,使用的是rownum,下面是关于rownum的介绍:
================================
rownum是Oracle从8开始提供的一个伪列,是把SQL出来的结果进行编号,始终从1开始,常见的用途就是用来分页输出.
select * from tablename where rownum<=10;1
rownum也可以实现数据分页查询:
SELECT *
FROM (SELECT a.*, ROWNUM rn
FROM tablename a)
WHERE rn >= 10 AND rn <= 201234567
这条语句即是输出第10到第20条纪录,这里之所以用rownum rn,是把rownum转成实例,因为rownum本身只能用 <=的比较方式,只有转成实列,这样就可做 >=的比较了。
❼ 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
❽ MySql怎么查询前10条数据
MySql查询前10条数据sql语句为:select*fromtable_namelimit0,10 。
通常0是可以省略的,直接写成 limit 10。0代表从第0条记录后面开始,也就是从第一条开始。
(8)sqlserver查询前10条数据扩展阅读:
1、SQLServer查询前10条的方法为:
selecttopX*fromtable_name
2、ORACLE查询前10条的方法:
select*fromtable_namewhererownum<X
3、Informix查询前10条记录的方法:
selectfirst10*fromtablename