关 键 词:
tab: (ID int) (A numeric(9,2)) (B numeric(9,2)) =============================================== 1 20.30 33.12 2 34.32 22.66 3 45.54 99.19 =============================================== 完成任务: 在不确定表名,及查询字段的情况下,根据传入的表名及字段及查询条件,获得对应返回结果: 1.seq条件 2.字段名称(A或B) 3.表名 要求函数返回值类型为numeric(9,2), 列如根据输入参数2取对应字段的值返回 做法如下: declare @tab varchar(10), @rowname varchar(10) ,@seq int declare @sql Nvarchar(1000) declare @v numeric(9,2) set @rowname='A'; set @seq=2 ; set @tab='tab'; set @sql='select @a='+@rowname+' from '+@tab+' where id='+rtrim(@seq) exec sp_executesql @sql,N'@a numeric(9,2) output',@v output select @v =============结果=========== 34.32 提醒: 对于动态表名及字段使用非常简单,但获取结果使用动态语句是有一定规则的,如上面的列子,需要把表名声明成Nvarchar的,然后执行动态语句时,声明其动态语句中变量前也要加N ,如N'@a numeric(9,2) output' |
|
来自: 我的阳光书吧 > 《SQLServer》