sql批量删除和条件查询
2011-04-02 16:06
666 查看
ALTER PROCEDURE [dbo].[PublishYearly_Delete]
@in_YearlyID VARCHAR(500)
AS
BEGIN
UPDATE PublishYearly SET Status=2 WHERE CHARINDEX(','+CAST(YearlyID AS VARCHAR(100))+',',@in_YearlyID)>0
END
ALTER PROCEDURE [dbo].[PublishYearly_GetList]
@request_page_num INT,--基于0的,如第一页@page_size=0
@page_size INT,
@Year INT,
@Status INT,
@PublishDate DATETIME,
@ExpiredDate DATETIME
AS
BEGIN
DECLARE @sql NVARCHAR(Max)
SET @sql='SELECT *,ROW_NUMBER() OVER (ORDER BY YearlyID) AS RowNumber FROM PublishYearly WHERE 1=1'
IF(@Year!=0)
SET @sql=@sql+' AND Year='+CAST(@Year AS VARCHAR(10));
IF(@Status!=0)
SET @sql=@sql+' AND Status='+CAST(@Status AS VARCHAR(10));
IF(@PublishDate IS NOT NULL)
SET @sql=@sql+' AND PublishDate>='''+CONVERT(VARCHAR(20),@PublishDate,120)+'''';
IF(@ExpiredDate IS NOT NULL)
SET @sql=@sql+' AND ExpiredDate<='''+CONVERT(VARCHAR(20),@ExpiredDate,120)+'''';
PRINT ('SELECT COUNT(*) FROM ('+@sql+') _temp')
EXEC ('SELECT COUNT(*) FROM ('+@sql+') _temp')
SET @sql='SELECT *,(CASE Status WHEN ''1'' THEN ''正常'' ELSE ''无效'' END) AS StatusN FROM (SELECT * FROM ('+ @sql+N') _temp WHERE RowNumber BETWEEN '+CAST(@request_page_num*@page_size+1 AS VARCHAR(10))+' AND '+CAST((@request_page_num+1)*@page_size AS VARCHAR(10))+') tt '
PRINT (@sql)
EXEC (@sql)
END
@in_YearlyID VARCHAR(500)
AS
BEGIN
UPDATE PublishYearly SET Status=2 WHERE CHARINDEX(','+CAST(YearlyID AS VARCHAR(100))+',',@in_YearlyID)>0
END
ALTER PROCEDURE [dbo].[PublishYearly_GetList]
@request_page_num INT,--基于0的,如第一页@page_size=0
@page_size INT,
@Year INT,
@Status INT,
@PublishDate DATETIME,
@ExpiredDate DATETIME
AS
BEGIN
DECLARE @sql NVARCHAR(Max)
SET @sql='SELECT *,ROW_NUMBER() OVER (ORDER BY YearlyID) AS RowNumber FROM PublishYearly WHERE 1=1'
IF(@Year!=0)
SET @sql=@sql+' AND Year='+CAST(@Year AS VARCHAR(10));
IF(@Status!=0)
SET @sql=@sql+' AND Status='+CAST(@Status AS VARCHAR(10));
IF(@PublishDate IS NOT NULL)
SET @sql=@sql+' AND PublishDate>='''+CONVERT(VARCHAR(20),@PublishDate,120)+'''';
IF(@ExpiredDate IS NOT NULL)
SET @sql=@sql+' AND ExpiredDate<='''+CONVERT(VARCHAR(20),@ExpiredDate,120)+'''';
PRINT ('SELECT COUNT(*) FROM ('+@sql+') _temp')
EXEC ('SELECT COUNT(*) FROM ('+@sql+') _temp')
SET @sql='SELECT *,(CASE Status WHEN ''1'' THEN ''正常'' ELSE ''无效'' END) AS StatusN FROM (SELECT * FROM ('+ @sql+N') _temp WHERE RowNumber BETWEEN '+CAST(@request_page_num*@page_size+1 AS VARCHAR(10))+' AND '+CAST((@request_page_num+1)*@page_size AS VARCHAR(10))+') tt '
PRINT (@sql)
EXEC (@sql)
END
相关文章推荐
- Mybatis动态SQL 条件查询,批量删除
- Linq多表查询条件批量删除
- sql按条件进行批量查询或update的关键字in
- Sql批量添加,批量查询,批量删除,批量修改。mybatis都有对应标签
- Linq多表查询条件批量删除
- mybatis针对Oracle数据库进行(单个或多个条件)批量操作(新增、修改、删除)的sql写法--mysql
- Struts2+Ibatis+Spring.30(完整例子,含3.0事务配置,OSCache缓存配置,JreeChart配置,log4j日志输出Sql,对一个表实现完整的查询,批量删除,添加,更新)
- JAVAWEB开发之分页显示、批量删除、条件查询 以及Listener监听器
- Angular用户查询,按条件排序,批量删除,添加,敏感字屏蔽
- mybatis针对Oracle数据库进行(单个或多个条件)批量操作(新增、修改、删除)的sql写法--mysql
- 根据条件批量删除sql中的表以及其他内容
- SQL存储过程将符合条件的大量记录批量删除脚本
- oracle_SQL 实验查询及删除重复记录 依据条件 (row)
- php部分---对数据的多条件查询,批量删除
- 框架 day50 BOS项目 4 批量导入(ocupload插件,pinyin4J)/POI解析Excel/Combobox下拉框/分区组合条件分页查询(ajax)/分区数据导出(Excel)
- Sql语句查询当天本周本月记录的where条件
- SQL - 查询条件 In与exists的区别
- Nhibernate查询条件表示(SQL)
- sql查询条件为null的查询语句
- mybatis分页多条件查询指定时间段数据的sql语句