当前位置:编程学习 > C#/ASP.NET >>

在存储过程中把参数作为列名进行查询, 高手来看看了 小问题

declare @weekn nvarchar(30), 
@week1day nvarchar(20),//日期 
@member nvarchar(20),//姓名 
@week int, 
@sql nvarchar(200) 
select @weekn=weekn from 表A where [id]=98  //(@weekn)这个数据存在别的表
set @member='姓名' 
set @week1day='2009-1-4' 

set @sql='select  '+@weekn+' from 表B where week1date='+char(39)+@week1day+char(39)+' and memberid='+char(39)+@member+char(39) 
exec (@sql)  //这个查询结果是对的 但是我想获取@weekn 这个列是数据  怎么写??? 

结果为 :

11



把 @sql 这个查询结果赋给 @week  怎么写???? 

例如 

把值@weekn的值赋给@aa 
select @aa=@weekn from 表B     --------------------编程问答-------------------- @week 是int

@sql结果是个集合。你怎么赋给他呀

实在是没明白你说的。 --------------------编程问答-------------------- set @sql='select  ' + cast(@week as varchar) + '=' +@weekn+' from 表B where week1date='+char(39)+@week1day+char(39)+' and memberid='+char(39)+@member+char(39) 

是想这样吗 --------------------编程问答--------------------
CREATE procedure getRealData 
@FieldName varchar(30) 
as
begin
exec ('select  '+@fieldname+' FROM hisData ')
end
GO


列作为参数 --------------------编程问答-------------------- @sql 的返回结果是一个值  --------------------编程问答-------------------- set @sql='select  ' + cast(@week as varchar) + '=' +@weekn+' from 表B where week1date='+char(39)+@week1day+char(39)+' and memberid='+char(39)+@member+char(39) 

是想这样吗,你试下 --------------------编程问答-------------------- set @sql='select  ' + cast(@week as varchar) + '=' +@weekn+' from 表B where week1date='+char(39)+@week1day+char(39)+' and memberid='+char(39)+@member+char(39) 

是想这样吗   


这个方法好像不行哦 @week没有值  --------------------编程问答-------------------- 帮忙看一下了  高手帮我解决一下这个小问题 谢谢了   在线等!!!!!!!!!!!!!!!!!!! --------------------编程问答-------------------- 没有人回答了 吗???高手 人呢??怎么不出现 
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,