sqlserver获取当前id的前一条数据和后一条数据

一、条件字段为数值的情况

select from tb where [email protected]; --当前记录

 

select top 1 * from tb where id>@id order by id; --下一条记录

 

select top 1 * from tb where id<@id order by id desc --上一条记录

二、以排序的思路出发的一种方案

;WITH TUsers AS

(

    SELECT *, ROW_NUMBER() OVER (ORDER BY vcUserID) AS _ROW

    FROM DB_Fast_Users.dbo.T_Users AS A(NOLOCK)

)

SELECT *

into #T

FROM TUsers 

-- 上一条

select B.*

from #T AS A(NOLOCK)

left join #T AS B(NOLOCK) ON B._ROW = (A._ROW - 1)

where A.vcUserID=‘Test1‘

-- 下一条

select B.*

from #T AS A(NOLOCK)

left join #T AS B(NOLOCK) ON B._ROW = (A._ROW + 1)

where A.vcUserID=‘Test1‘

drop table #T

sqlserver获取当前id的前一条数据和后一条数据

时间: 2024-11-05 19:01:08

sqlserver获取当前id的前一条数据和后一条数据的相关文章

mysql怎么查询一条记录的前一条记录和后一条记录

上一条:select * from 表 where 数据id<@当前显示数据id order by 数据_id asc) limit 1下一条:select * from 表 where 数据id>@当前显示数据id order by 数据_id desc) limit 1 mysql 里面不支持 select top

AJAX获取数据成功后的返回数据如何声明成全局变量

var result=""; $.ajax({ type: "post", url: "../reportRule/main.do?method=selectReportToAdd", data:{}, success: function(msg){ result = msg; alert(result );\\有数据 } }); alert(result)\\无数据 原因: ajax是异步请求,即javascript是非阻塞运行的,在$.aja

shell获取进程ID的方法: pidof | pgrep | ps-A+grep+awk

shell获取进程ID的方法: 我知道和实践过的有这么三种: ps -A |grep "cmdname"| awk '{print $1}' pidof "cmdname" pgrep "cmdname" 这三种在bash和busybox ash里面的运行结果稍有不同, 第一种完全相同,但是因为调用命令次数较多,性能上是不行的. 第二种: pidof 只能获取程序的文件名匹配到的进程号,在ash中 比如 pidof "usr/bin/t

oracle&amp;&amp;Sqlserver获取表名列名主键及数据类型

SQlserver获得列名,列类型,列类型长度,scale,prec等数据类型(syscolumns,systypes,sysobjects均为视图) select a.name as colname, b.name as typename,a.length as length,a.scale as scale,a.prec as prec from syscolumns a,systypes b ,sysobjects c where a.xusertype=b.xusertype and a

SQLServer获取临时表所有列名或是否存在指定列名的方法

获取临时表中所有列名 select name from tempdb.dbo.syscolumns where id=object_id( '#TempTB') 判断临时表中是否存在指定列名 if col_length('tempdb.dbo.#TempTB','columnName') is not null print '存在' else print '不存在' SQLServer获取临时表所有列名或是否存在指定列名的方法

linux分析apache日志获取最多访问的前10个IP

apache日志分析可以获得很多有用的信息,现在来试试最基本的,获取最多访问的前10个IP地址及访问次数. 既然是统计,那么awk是必不可少的,好用而高效. 命令如下: awk '{a[$1] += 1;} END {for (i in a) printf("%d %s\n", a[i], i);}' 日志文件 | sort -n | tail 首先用awk统计出来一个列表,然后用sort进行排序,最后用tail取最后的10个. 以上参数可以略作修改显示更多的数据,比如将tail加上-

jquery 怎么获取服务器控件ID

页面嵌套母版页时再用 $("#id") 获取服务器端控件(runat="server") ID,就获取不到了.我们可以查看页面源代码,发现ID已经被改了. 我们可以通过: $("#<%=id.ClientID %>") 获取服务器控件ID或绑定一些事件. 如: <asp:TextBox ID="txtTitle" runat="server"></asp:TextBox>

Java端获取当前时间的前12个小时

1.Java(service方法)端获取当前时间的前12个小时: public Object getSearchName(HttpServletRequest request){ JSONArray arr = new JSONArray(); JSONObject obj = new JSONObject(); JSONObject objFirst = new JSONObject(); objFirst.put("itemname", "--请选择--");

获取一亿数据获取前100个最大值

package cn.usst.tophundred.quicksort; import java.util.Random; /** 获取一亿数据获取前100个最大值 1. 假设数组为 array[N] (N = 1 亿),首先利用quicksort的原理把array分成两个部分,左边部分比 array[N - 1] (array中的最后一个值,即pivot) 大, 右边部分比pivot 小.然后,可以得到 array[array.length - 1] (即 pivot) 在整个数组中的位置,