SQLSERVER取前10条记录怎样取

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLSERVER取前10条记录怎样取相关的知识,希望对你有一定的参考价值。

单表我会
select top 10 from table order by id
联表呢?
例如
select top 10 from (select A.name,B.sex from userinfo A,sexinfo B where A.id = B.id and A.sex = B.sexid) order by id
就会报错,请指教

你这用得着嵌套吗。不是多此一举吗?

select top 10 A.name,B.sex from userinfo A,sexinfo B where A.id = B.id and A.sex = B.sexid order by A.id

要是真象你那么写的话,也可以

select top 10 C.name,C.sex from (select A.name name,B.sex sex ,A.id id from userinfo A,sexinfo B where A.id = B.id and A.sex = B.sexid) C order by A.id
参考技术A order by中指定了用id排序,至少子查询中应该包含id列吧?另外子查询用在from子句中必须为子查询设置一个别名。
select top 10 * from (select A.id,A.name,B.sex from userinfo A,sexinfo B where A.id = B.id and A.sex = B.sexid) as newtable order by id
参考技术B 思路是正确的,但是sql语句写的有些问题,这么写就对了
select top 10 * from (select A.name,B.sex,A.id from userinfo A,sexinfo B where A.id = B.id and A.sex = B.sexid) C order by C.id
参考技术C oracle:
select * from tab where rownum <= 10;

sql server:
select top 10 * from tab

mysql:
select * from tab limit 10

db2:
select * from tab fetch first 10 rows only
参考技术D select top 10 A.name,B.sex from userinfo A,sexinfo B where A.id = B.id and A.sex = B.sexid order by A.id
也许这样会简单点!

实现排序取前几条数据

实现排序取前几条数据

@Override
public List<Notice> selectNewlyNotice() {
    NoticeExample noticeExample = new NoticeExample();
    noticeExample.setOrderByClause("noti_id desc");
    List<Notice> notices = noticeMapper.selectByExample(noticeExample)
            .stream().limit(5).collect(Collectors.toList());
    return notices;
}

说明:首先使用example进行排序,然后按照这个example的条件放到select中进行查询,查询完后使用stream流函数进行处理,limit(x) x表示截取的几条数据。然后collect()函数是将流转为list集合。

以上是关于SQLSERVER取前10条记录怎样取的主要内容,如果未能解决你的问题,请参考以下文章

mysql使用GROUP BY分组实现取前N条记录的方法

SQL实现分组查询取前几条记录

怎样用sql语句取表里第n条记录的数据啊(用Delphi实现)

mysql分组取前N记录

mysql中排序取第十个数据

sql 每个编号按时间排序取前两条数据