在SQL中如果主键字段是不连续的 如何查出表中的第三四条数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在SQL中如果主键字段是不连续的 如何查出表中的第三四条数据相关的知识,希望对你有一定的参考价值。

select top 2 * from exloginrecord where id not in (select top 2 id from exloginrecord order by id )
order by id
写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。
答:
解1: select top 10 * from tsmordermanage where id not in (select top 30 id from tsmordermanage order by id) order by id
解2:select top 10 * from tsmordermanage where id > (select max(id) from (select top 30 id from tsmordermanage order by id )as tsmordermanage)
order by id
看你表结构有的不需要order by 的,昨天刚看这个面试题
参考技术A 如果你硬查表中的第几条记录,那只能在表中建立一个记录号字段了.然后在SQL语句的where子句写 记录号 between 3 and 4.只能这样了. 参考技术B select * from (
select ROW_NUMBER() over(order by name) as rowss,*
from sysobjects )
A where A.rowss in (3,4)

必须要有一个排序条件

为啥我sql语句用group by老查出两条连续相同的记录?比如本来3条结果,会出现6条。

你显示的数据重复,但是你多表关联的其他字段肯定有不重复的,
如果你想看看就输出的时候打*,自己看一下,肯定有不重复的
如果重复部分是你要的结果,你可以用distinct去重你要的几个字段
参考技术A 几张表关联查询数据的?如果是,看关联字段的准确性。。
是不是缺少关联字段。
参考技术B 语句没有贴出来,别人怎么帮你回答。 参考技术C 多表查询的!你distinct之后看看

以上是关于在SQL中如果主键字段是不连续的 如何查出表中的第三四条数据的主要内容,如果未能解决你的问题,请参考以下文章

SQL中,如何查询存在一个表的字段而不在另一个表的字段中的数据记录?

SQLSERVER如何在数据库里根据某个字段,查出该表名字

为啥我sql语句用group by老查出两条连续相同的记录?比如本来3条结果,会出现6条。

mysql查询语句例题

sql查询 如何获取查找某ID的一条记录在表中是第几条记录

sql 如何判断表中的某个字段是不是有某个值