1、SQL可搜索可排序可分页存储过程, 2、范围内的随机时间 适用于sql 2008以上
-- =============================================
-- Author: 蜘蛛王
-- Create date: 2015-10-29
-- Description: 可搜索 可排序 可分页存储过程 适用于sql2008以上
-- (非常重要,请认真使用)
-- ============================================= create PROCEDURE dbo.list
(
@table varchar(1000),--表名或视图表 (必须)
@orderby varchar(1000),--排序字段 (必须)
@fields varchar(max)='*',--欲选择字段列表 (可选)
@pageindex int=1,--页号,从1开始 (可选)
@pagesize int=20,--页尺寸 (可选)
@where nvarchar(max) = N'',--条件 (可选)
@IsCount bit = 1 -- 返回记录总数, 非 0 值则返回 (可选)
)
AS
BEGIN
SET NOCOUNT ON
declare @sqlstr nvarchar(max)
set @sqlstr=''
set @orderby = ' order by ' + @orderby
if @where<>N''
set @where = ' Where ' + @where --对第一页可以直接用top
if @pageindex=1
begin
set @sqlstr = 'select top ' + CONVERT(varchar(10),@pagesize) + ' ' + @fields + ' from ' + @table + @where + @orderby
end
else
begin
set @sqlstr = 'with temptbl as ('
+ ' SELECT ROW_NUMBER() OVER ('+ @orderby +') AS Row, '
+ @fields + ' from ' + @table + @where
+ ') SELECT '+ @fields + ' FROM temptbl where Row between ' + CONVERT(varchar(10),(@pageindex-1)*@pagesize+1) + ' and ' + CONVERT(varchar(10),(@pageindex-1)*@pagesize+@pagesize) end
if @IsCount!=0
set @sqlstr = @sqlstr + ';select count(1) from ' + @table + @where
execute(@sqlstr)
END
--测试代码
exec list @table='dl_QQ',@orderby='iid desc',@IsCount=1, @pageindex =2, @fields='iid,qq', @where=' iid <30 '
exec list @table='dl_QQ',@orderby='iid desc',@IsCount=1, @pageindex =1, @fields='iid,qq', @where=' iid <30 '
/******************************
* 函数名:RandDateTime
* 作用:返回两个时间范围内的一个随机时间
* Author:
* Date: 2015-11-13
* 调用:select dbo.RandDateTime(NEWID(),'2015-11-03 11:24:17','2015-11-03 11:25:17')
*******************************/
go
--创建函数
alter Function RandDateTime
(
@newID uniqueidentifier, -- 用 NEWID()
@date_from DateTime, --开始时间
@date_to DateTime --结束时间
)
Returns DateTime
As
Begin Return CAST(CAST(@date_from AS DECIMAL(18,8)) + -----开始时间 加上一个以天为整的数值作为新的日期
(
ABS(
CAST(
CAST( @newID AS Binary(17) )--把生成的一个二进制随机数转化为整数 并取其绝对值
AS INT
)
) / 10000.0
% ----防止随机数过大 取其对开始结束时间差的模
CAST(
(@date_to - @date_from) -----获取时间差 并转换成整型
AS DECIMAL(18,8)
)
) AS DATETIME)
End
1、SQL可搜索可排序可分页存储过程, 2、范围内的随机时间 适用于sql 2008以上的更多相关文章
- sql server 带输入输出参数的分页存储过程(效率最高)
create procedure proc_page_withtopmax( @pageIndex int,--页索引 @pageSize int,--每页显示数 @pageCount int out ...
- 在ASP.NET MVC5中实现具有服务器端过滤、排序和分页的GridView
背景 在前一篇文章<[初学者指南]在ASP.NET MVC 5中创建GridView>中,我们学习了如何在 ASP.NET MVC 中实现 GridView,类似于 ASP.NET web ...
- [转]在ASP.NET MVC5中实现具有服务器端过滤、排序和分页的GridView
本文转自:http://www.cnblogs.com/powertoolsteam/p/MVC5_GridView_2.html 背景 在前一篇文章<[初学者指南]在ASP.NET MVC 5 ...
- [转]关于SQL分页存储过程的分析
[转]关于SQL分页存储过程的分析 建立一个 Web 应用,分页浏览功能必不可少.这个问题是数据库处理中十分常见的问题.经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用 ...
- 在ASP.NET MVC中使用Boostrap实现产品的展示、查询、排序、分页
在产品展示中,通常涉及产品的展示方式.查询.排序.分页,本篇就在ASP.NET MVC下,使用Boostrap来实现. 源码放在了GitHub: https://github.com/darrenji ...
- 动软.NET 分页存储过程UP_GetRecordByPage
1, ------------------------------------ --用途:支持任意排序的分页存储过程 --说明: ----------------------------------- ...
- asp.net sql 分页,,优化 排序 及分页,
调用代码: <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix ...
- [原创]java WEB学习笔记92:Hibernate学习之路-- -QBC 检索和本地 SQL 检索:基本的QBC 查询,带 AND 和 OR 的QBC,统计查询,排序,分页
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- sql server 2000 单主键高效分页存储过程 (支持多字段排序)
sql server 2000 单主键高效分页存储过程 (支持多字段排序) Create PROC P_viewPage /* nzperfect [ ...
随机推荐
- Unity使用protobuf-net进行二进制序列化与反序列化
Protobuf-net提供的一种易于使用的数据序列化方案,可序列化带有[ProtoContract]特性的类实例,并可支持Unity各个发布平台,且效率高.易用性强. public static c ...
- amazon o2 - reverse second half linked list
public ListNode reverseBetween(ListNode head, int m, int n) { if(head==null) return head; ListNode s ...
- 黑马程序员:Java编程_7K面试题之银行业务调度系统
=========== ASP.Net+Android+IOS开发..Net培训.期待与您交流!=========== 模拟实现银行业务调度系统逻辑,具体需求如下: 银行内有6个业务窗口,1 - 4号 ...
- LPTHW 笨办法学python 40章 类
今天读了LPTHW的第40章以后豁然开朗,原来一直愚钝,不太理解类的定义和使用,还有就是不太理解关于self的定义. class MyStuff(object): def __init__(self) ...
- 分布式系统(Distributed System)资料
这个资料关于分布式系统资料,作者写的太好了.拿过来以备用 网址:https://github.com/ty4z2008/Qix/blob/master/ds.md 希望转载的朋友,你可以不用联系我.但 ...
- CentOS 系统安装
1.安装时分区建立 建立/boot分区 500M /swap 10000M 剩余空间建立PV PV加入VG 建立LV 全部挂在到/ 2安装模式选择:基本安装 开发工具全部装,SERVER 全部不选,中 ...
- matlab小段代码学习
matlab读hdf文件到txt filename='E:\data\H1BDLD10110607231863921.L2B.HDF'; h=hdftool(filename); Latitude = ...
- js 九九乘法表
/** * 第一行:1x1=1 * 第二行:2x1=2 2x2=4 * 第三行:3x1=3 3x2=6 3x3=9 */ document.write('<table border=" ...
- 内省(introspector)------>JavaBean
内省(introspector)------>JavaBean 1.问什么要学内省? 开发框架时,经常需要Java对象的属性来来封装程序的数据,每次使用反射技术完成此操作过于 ...
- 推荐系统学习--cb+cf 初见
对于推荐系统的推出有两个条件:1.信息过载 ,2用户没有明确的需求 推荐系统算法中常见的有基于内容推荐,协同过滤推荐,协同过滤还可以分为基于人的协同过滤,基于内容协同过滤:社会推荐等 如何理解这些推荐 ...