TSQL查询给定记录的相关数据
2008-01-30 15:13
197 查看
具体环境为SQL 2000 ,在一内容表中给定一条记录,查寻编号大于这里记录的的数据,具体代码如下
Create Proc CMST_QueryInterrelated
@ID int, ----给定的记录的主键
@Num int ---需要条数
As
Declare @RNum int
Declare @SQL nvarchar(2000)
Set @SQL=''
Set @RNum=0
Select @RNum=Count(ID) From [CMST] Where [ID]> @ID
If(@RNum-@Num) > 0
Begin
Set @SQL='Select Top '+ cast(@Num as nvarchar) +' ID,Title,AddTime From [CMST] Where [ID]>' + cast(@Id as nvarchar)
End
Else
Begin
Set @SQL='Select Top '+ cast(@Num as nvarchar) +' ID,Title,AddTime From [CMST] Where [ID]>' + cast(@Id as nvarchar)
+ 'Union Select Top ' + cast((@Num-@RNum) as nvarchar) +' ID,Title From [CMST] Where [ID] < ' + cast(@Id as nvarchar) End
Exec (@SQL)
上面的功能是,返回比给定ID 大的 @Num 条数据,如果 比ID大的记录不足@Num条,那么少的部分由ID比@ID小的记录获取(形成一个环型),另外你可以在 where 里加入其他条件比方同一分类等等..
Create Proc CMST_QueryInterrelated
@ID int, ----给定的记录的主键
@Num int ---需要条数
As
Declare @RNum int
Declare @SQL nvarchar(2000)
Set @SQL=''
Set @RNum=0
Select @RNum=Count(ID) From [CMST] Where [ID]> @ID
If(@RNum-@Num) > 0
Begin
Set @SQL='Select Top '+ cast(@Num as nvarchar) +' ID,Title,AddTime From [CMST] Where [ID]>' + cast(@Id as nvarchar)
End
Else
Begin
Set @SQL='Select Top '+ cast(@Num as nvarchar) +' ID,Title,AddTime From [CMST] Where [ID]>' + cast(@Id as nvarchar)
+ 'Union Select Top ' + cast((@Num-@RNum) as nvarchar) +' ID,Title From [CMST] Where [ID] < ' + cast(@Id as nvarchar) End
Exec (@SQL)
上面的功能是,返回比给定ID 大的 @Num 条数据,如果 比ID大的记录不足@Num条,那么少的部分由ID比@ID小的记录获取(形成一个环型),另外你可以在 where 里加入其他条件比方同一分类等等..
相关文章推荐
- 【库房】查询无数据时如何显示——没有相关记录!
- easyui-datagrid查询到没有数据时,设置显示“没有相关记录”
- Oracle查询重复数据与删除重复记录方法
- 【SQL精彩语句】分解字符串并查询相关数据
- 给定Json数据,提取相关数据
- 一步一步学MySQL----16 多表数据记录查询之子查询
- 如何利用nslookup命令查询mx记录?以及邮件相关记录
- MySQL 基础---单表数据记录查询
- mysql 分组查询数据时,如何获得用于分页的总记录数?
- 查询数据表中的记录
- mysql学习笔记之八(单表数据记录查询)
- csharp:DataRelation 对象访问相关数据表中的记录
- MySQL数据记录基本操作——多表查询、子查询和正则表达式查询
- MySQL查询数据表中数据记录(包括多表查询)
- sql 一个6亿的表a,一个3亿的表b,通过外间tid关联,你如何最快的查询出满足条件的第50000到第50200中的这200条数据记录。
- 【Android问题记录】为什么在终端直接查询数据库可以查到数据但是用代码总是查不到
- 分解字符串并查询相关数据
- mysql-数据(记录)相关操作(增删改查)及权限管理
- sql 查询出当天记录数据
- MySQL多表数据记录查询详解