在SQL SERVER中查询数据库中第几条至第几条之间的数据SQL语句怎么写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在SQL SERVER中查询数据库中第几条至第几条之间的数据SQL语句怎么写相关的知识,希望对你有一定的参考价值。

1、首先我们先来看一下查询语句的like优化,如下图所示,分别将百分号放在前面和后面。

2、百分号放在后面的查询更高效一些。

3、接下来我们在来看一下OR查询的效率,如下图所示,通过OR来查询两个条件的记录。

4、执行后看执行计划,我们看到这种OR查询的效率也不是很高。

5、如果想替换OR查询就可用Union All来代替,如下图所示,用两个单独的查询实现。

6、第一种很显然会比第二种慢,所以在使用的时候查询条件尽量不要有计算。

参考技术A

在SQL SERVER中查询数据库中第几条至第几条之间的数据SQL语句示例如下:

select top 20 * from 表 where id not in (select top 10 id from 表 order by id) 
order by id;

以上sql语句实现查询第10条至20条之间的记录,此方法是先取出前20条的ID,排除前10条数据的ID,然后在剩下的数据里面取出前10条数据。


扩展资料

SQL server常用操作sql语句介绍:

1、查询:select * from table1 where 范围

2、插入:insert into table1(field1,field2) values(value1,value2)

3、删除:delete from table1 where 范围

4、更新:update table1 set field1=value1 where 范围

5、查找:select * from table1 where field1 like ’%value1%’

参考技术B 在SQL SERVER中查询数据库中第几条至第几条之间的数据SQL语句如何写?
如:在SQL SERVER中查询数据库中第10条至30条之间的数据SQL语句如何写?

------解决方案--------------------
select top 20 * from 表 where id in (select top 30 id from 表 order by id)order by id desc
------解决方案--------------------
如果有唯一列可以用ls的

select identity(int,1,1) id,* into temp from 表
select * from temp where id between 10 and 30
------解决方案--------------------
select top 20 * from 表 where 标识字段 not in (select top 9 标识字段 from 表 )
------解决方案--------------------
1
select top 20 * from 表
where id not in (select top 10 id from 表 order by id)
order by id
2--应该从11开始
select * from 表 where id between 11 and 30
参考技术C --查第3条到第5条 一共3条数据
declare @tou int,@wei int
set @tou = 3
set @wei = 5
select top (@wei - @tou + 1) * from 表名 where id not in (select top (@tou - 1) id from 表名 order by id)

自己把表名替换 运行一下就看到效果了

织梦autoindex应用 dedecms循环中判断第几条数据

arclist 标签下使用 [field:global.autoindex/] 默认从1开始

 

{dede:arclist row=‘10‘ titlelen=‘48‘ typeid=‘1‘ channelid=‘1‘}

从1开始:[field:global runphp=‘yes‘ name=autoindex][/field:global]或者[field:global.autoindex/]

从0开始:[field:global runphp=‘yes‘ name=autoindex]@[email protected];[/field:global]

{/dede:arclist}

 

channel 标签下使用 [field:global.autoindex/] 默认从0开始

{dede:channel row=‘5‘ type=‘top‘}

从0开始:[field:global runphp=‘yes‘ name=autoindex][/field:global]或者[field:global.autoindex/]

从1开始:[field:global runphp=‘yes‘ name=autoindex]@[email protected]+1;[/field:global]

{/dede:channel}

 

channelartlist 标签下使用 {dede:global.itemindex/} 默认从1开始

{dede:channelartlist row=‘4‘}

从1开始:{dede:global name=itemindex runphp=‘yes‘}{/dede:global}或者{dede:global.itemindex/}

从1开始:{dede:global name=itemindex runphp=‘yes‘}@[email protected];{/dede:global}

{/dede:channelartlist}

 

list  到第10条时输出<br/>,否则输出空

循环到第几条加条线同理

{dede:list pagesize=‘40‘ orderby=‘id‘} 

<li><a title="[field:title function=‘htmlspecialchars(@me)‘/] " href="[field:arcurl /]">[field:title /]</a></li>

[field:global name=‘autoindex‘ runphp=‘yes‘]if(@me%10==0){@me="<br/>";}else{@me=‘‘;}[/field:global]  

{/dede:list}

以上是关于在SQL SERVER中查询数据库中第几条至第几条之间的数据SQL语句怎么写的主要内容,如果未能解决你的问题,请参考以下文章

用SQL如何查询第几条到第几条之间的数据?想不出来呢,网上的答案都不行的

Sql Server实现limit用法

Sql Server实现limit用法

mysql 查询前几条数据

MySQL - GROUP BY 默认查询第几条数据?

通过 listboxitem 查找属于listbox第几条数据