在sql查询中使用表变量

复制代码 代码如下:

USE [DAF_DB]

GO

/****** Object: StoredProcedure [dbo].[PROG_WORKTASK_List] Script Date: 06/14/2010 21:14:43 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

--[PROG_WORKTASK_List] 62,0,'','',0,0,'',''

-- =============================================

-- Author: guo.lin

-- Create date: 2010-03-10

-- Description: 获取工作任务单列表,根据相关条件

-- =============================================

ALTER PROCEDURE [dbo].[PROG_WORKTASK_List]

@userID varchar(10), ---当前用户

@status int, ---状态

@Leader varchar(30),

@Facilitators varchar(30),

@Level int ,

@Priority int,

@CloseDT varchar(30),

@CreatedBy varchar(30)

AS

BEGIN

declare @result table(

taskid int,

TaskName nvarchar(100),

TaskTopic nvarchar(100),

Level varchar(10),

Priority varchar(10),

Status varchar(10),

Leader varchar(100),

strLeader nvarchar(500),

Facilitators varchar(100),

cycletime varchar(10),

CloseDT datetime,

Createddt datetime,

CreatedBy varchar(30)

)

insert into @result select taskid,TaskName,TaskTopic,Level,Priority,Status,Leader,strLeader,Facilitators,cycletime,CloseDT,Createddt,CreatedBy

from Work_TaskProcess where createdby=@CreatedBy or leader like '%|'+@userid+'|%' or Facilitators like '%|'+@userid+'|%'

if (@status <>0)

delete @result where status<>@status

if (@Leader<>'')

delete @result where leader not like '%|'+@Leader+'|%'

-- if (@CreatedBy<>'')

-- delete @result where CreatedBy<>@CreatedBy

if (@Level <> 0)

delete @result where level<>@level

if (@Priority <> 0)

delete @result where Priority<>@Priority

if (@CloseDT<>'')

delete @result where CloseDT<>@CloseDT

update @result set status=b.itemtext from @result a,DAF_Item b where a.Status=b.itemvalue and b.itemtype='worktaskStatus'

update @result set Level=b.itemtext from @result a,DAF_Item b where a.Level=b.itemvalue and b.itemtype='worktaskLevel'

update @result set Priority=b.itemtext from @result a,DAF_Item b where a.Priority=b.itemvalue and b.itemtype='worktaskPriority'

update @result set createdby=b.username from @result a, DAF_useraccount b where a.createdBy=b.userid

update @result set cycletime=cycletime+'天'

select taskid,TaskName,TaskTopic,Level,Priority,Status,strLeader,Facilitators,cycletime,CloseDT,Createddt,CreatedBy from @result order by Createddt desc

END

时间: 2024-10-26 10:01:06

在sql查询中使用表变量的相关文章

在sql查询中使用表变量_MsSql

复制代码 代码如下: USE [DAF_DB] GO /****** Object: StoredProcedure [dbo].[PROG_WORKTASK_List] Script Date: 06/14/2010 21:14:43 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO --[PROG_WORKTASK_List] 62,0,'','',0,0,'','' -- ===========================

SQL查询中需要使用别名问题

SQL查询中什么时候需要使用表别名? 今天写MySQL时遇到使用表别名的问题,这里重新总结一下. 1. 表名很长时 select * from www_baidu_user where www_baidu_user.id = 1; 和 select * from www_baidu_user u where u.id = 1; 查询的结果一样,但是第二个使用表别名时更简洁.同样,字段的别名也是一样的原理. 2. 必须使用别名时 如下: 1) select * from (select * fro

sqlite-在SQlite查询中使用变量

问题描述 在SQlite查询中使用变量 使用了下面的方法: public String getCount() { SQLiteDatabase db = smokinDBOpenHelper.getWritableDatabase(); String w = "Home"; Cursor cursor = db.rawQuery("select * from " + smokinDBOpenHelper.INCIDENTS_TABLE + " where

SqlServer中用exec处理sql字符串中含有变量的小例子_MsSql

SqlServer中,用exec处理sql字符串中含有变量,提示:必须声明标量变量@(已解决!) 复制代码 代码如下: declare @tssj nvarchar(100)  -- 外部变量declare @Sql_Sql nvarchar(100) -- 存sql字符串变量       set @Sql_Sql =N'select @tssj=jpk from b where bzmc=''中国''' EXEC sp_executesql @Sql_Sql,N'@tssj int outpu

SqlServer中用exec处理sql字符串中含有变量的小例子

SqlServer中,用exec处理sql字符串中含有变量,提示:必须声明标量变量@(已解决!) 复制代码 代码如下:declare @tssj nvarchar(100)  -- 外部变量declare @Sql_Sql nvarchar(100) -- 存sql字符串变量 set @Sql_Sql =N'select @tssj=jpk from b where bzmc=''中国''' EXEC sp_executesql @Sql_Sql,N'@tssj int output',@tss

SQL*Plus中替换变量与定义变量

替换变量 SQL*Plus中的替换变量又叫替代变量,它一般用来临时存储相关数据:在SQL语句之间传递值.一般使用&或&&前缀来指定替换变量. 关于使用替换变量,一般是利用其创建通用的脚本或达到和用户交换目的.如下所示: 例如,我需要查看表的相关信息,如果不使用替换变量,每次查询我都要修改脚本.非常不便,如果使用替换变量,我们可以将下面脚本存放在tab.sql脚本中,每次运行时,只需要输入替换变量的值就可以了. COL LOGGING FOR A7;   COL OWNER FOR

SQL行号排序和分页(SQL查询中插入行号 自定义分页的另类实现)_MsSql

(一)行号显示和排序 1.SQL Server的行号 A.SQL 2000使用identity(int,1,1)和临时表,可以显示行号 SELECT identity(int,1,1) AS ROWNUM, [DataID] INTO #1 FROM DATAS order by DataID; SELECT * FROM #1 B.SQL 2005提供一个很好用的函数row_number(), 可以直接用来显示行号,当然也可以使用SQL 2000的identity SELECT row_num

求SQL 查询中截取特定字符串,动态索引方法

问题描述 SQL数据库中现有类似以下数据:router16960761696076,1712040,1720394,1714275,1712018,17119841696076,1712040,1720394,1714275,1712018,1711984,1726235,1712000我需要截取特定的字符(比如最后两个逗号直接的值:1712018,倒数第二个逗号到倒数第三个逗号直接的值),希望论坛大神帮忙指点一下,能有个详细的函数最好.谢谢.补充一下,数值位数有可能是7位,有可能是8位,所以不

SqlServer中如何用exec处理sql字符串中含有变量

提示:必须声明标量变量@ declare @tssj nvarchar(100) -- 外部变量 declare @Sql_Sql nvarchar(100) -- 存sql字符串变量 set @Sql_Sql =N'select @tssj=jpk from b where bzmc=''中国''' EXEC sp_executesql @Sql_Sql,N'@tssj int output',@tssj output select @tssj N'@tssj int output',@tss