服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Sql Server - 在sql查询中使用表变量

在sql查询中使用表变量

2019-11-25 15:40MSSQL教程网 Sql Server

在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 

延伸 · 阅读

精彩推荐