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 [ ...
随机推荐
- 一口气从CSS讲到Servlet再到JSP、Struts2,清蒸JavaWeb的前前后后。
B/S系统就是Browser/Server,浏览器/服务器系统,即,客户在浏览器操作,而代码实现的具体处理以及数据库操作等,则由后台服务器来完成,男耕女织,相得甚欢.比如我们查询成绩,我们通过浏览器输 ...
- UE4 WCF RestFul 服务器 读取JSON 数据并解析 简单实例
Note:不知道为什么通过Txt读取的JsonString,如果TXT 不是ANSI编码的话,会报JsonArrayStringToUStruct Unable to parse. bool UWg ...
- canvas转盘抽奖
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" ...
- Android 简易崩溃日志保存
仅仅做了简单的保存到了本地而已: 根据需要可以继续增加功能: 下一次启动上传到服务器: 增加应用版本,机型系统版本信息等: public class CrashSaver { public stati ...
- linux删除文件后沒有释放空间
在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的文件夹结构上解除链接(unlink).然而假设文件是被 打开的(有一个进程正在使用),那么进程将仍然能够读取该文件,磁盘空 ...
- PHP 爬虫
1.爬虫的本质简单来说,就是读取页面源代码,然后用正则匹配得到想要的数据. 示例如下: private function spider_jiuyou_list($listname,$url) { ...
- 转载:ORA-01438: 值大于为此列指定的允许精度
Number的数据声明如下: 表示 作用 说明Number(p, s) 声明一个定点数 p(precision)为精度,s(scale)表示小数 ...
- eclipse界面混乱
在eclipse最右边点击Java----reset
- PL-SQL(免安装版本)报错ORA-12154
今天在帮同事安装PL/SQL时,在登陆的时候出现上述错误,从网上找了好多解决方法,但都没有解决问题.对于免安装版本的PL/SQL在登陆是应该先配置好路径:bin\instantclient_11_ ...
- mySql中alter table的使用
1.修改表名:alter table 原表名 rename to 新表名; 2.新增列:alter table 表名 add column 列名 varchar(20) ; 3.删除列:alter t ...