怎么取出变量字段下的值??

woodfire 2005-07-29 07:43:53
我在工作中遇到这样一个问题:要取出变量字段下的值??
@city --字段名
@condition --条件变量
select @city from table1 where ziduan1=@condition

比如传: 北京, 10
运行:返回的结果是传过去的值:北京 而不是我想要的字段值
请高手指点!
...全文
114 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyfing 2005-07-29
  • 打赏
  • 举报
回复
呵呵,基本上要说的一点儿是楼主应该以@sql='select ...'+变量(@sql varchar(400))这种形式把SQL语句存下来,然后以exec(@sql)的方法来执行这条语句,这样就可以达到楼主的目的了。
sunqi_790817 2005-07-29
  • 打赏
  • 举报
回复
exec('select ' + @city + ' from table1 where ziduan1 = @condition')
MorningTea 2005-07-29
  • 打赏
  • 举报
回复
create table #city (citynam varchar(20),ziduan1 varchar(10))
insert into #city values('PuDong','shanghai')
insert into #city values('GuangZhou','Guangdong')

/*@city --字段名
@condition --条件变量
*/

declare @city as nvarchar(10)
declare @condition as nvarchar(10)
set @city = 'citynam'
set @condition = 'Guangdong'
declare @sql nvarchar(4000)
set @sql = N'select ' + @city + ' from #city where ziduan1 =@condition '
exec sp_executesql @sql,N'@condition nvarchar(10)',@condition
/*
citynam
--------------------
GuangZhou

(1 row(s) affected)
*/
点点星灯 2005-07-29
  • 打赏
  • 举报
回复
上面的我自己经过测试可以做到.
点点星灯 2005-07-29
  • 打赏
  • 举报
回复
declare @str varchar(100)
set @str='select '+@city+' from table1 where ziduan1='@condition
--print @str
exec (@str)
点点星灯 2005-07-29
  • 打赏
  • 举报
回复
declare @title varchar(20)
declare @condition varchar(20)
declare @str varchar(100)
set @title='title'
set @condition='5'
set @str='select '+@title+' from info where c_id='+@condition
print @str
exec (@str)
zlp321002 2005-07-29
  • 打赏
  • 举报
回复
--@condition 如果是整形则
select @city from table1 where ziduan1=@condition+1

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧