关于一个变量列名的问题?

Freeper 2003-08-19 11:23:46
在MS SQL的查询分析器中,把一个表的列名赋值到一个变量中去,再用SELECT语句对其进行操作.语句如下:
delcare @ls_test varchar
set @ls_test='A_0' --A_0是表TABLE的字段
select @ls_test from TABLE
当执行以上的语句所得到的结果不能得出与SELECT A_0 FROM TABLE语句相同的效果
请问各位大虾如何用变量来代替列名实现操作。谢谢!!!
...全文
80 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hbwhwanghua 2003-08-19
  • 打赏
  • 举报
回复
肯定不行,要用动态SQL!
CrazyFor 2003-08-19
  • 打赏
  • 举报
回复
delcare @ls_test varchar
set @ls_test='A_0' --A_0是表TABLE的字段
exec('select '+@ls_test+' from TABLE')

or

delcare @ls_test varchar
set @ls_test='A_0' --A_0是表TABLE的字段
declare @sql varchar
set @sql = 'select ' + @ls_test + ' from TABLE'
exec(@sql)
liuyun2003 2003-08-19
  • 打赏
  • 举报
回复
晚了,慢了。
txlicenhe 2003-08-19
  • 打赏
  • 举报
回复
delcare @ls_test varchar
set @ls_test='A_0' --A_0是表TABLE的字段
exec('select ' + @ls_test+ ' from TABLE')

or
delcare @ls_test varchar
set @ls_test='A_0' --A_0是表TABLE的字段
declare @sql varchar
set @sql = 'select ' + @ls_test + ' from TABLE'
exec(@sql)


hjb111 2003-08-19
  • 打赏
  • 举报
回复
delcare @ls_test varchar
set @ls_test='A_0' --A_0是表TABLE的字段
exec('select '+@ls_test+' from TABLE')


zjcxc 2003-08-19
  • 打赏
  • 举报
回复
动态的,用exec来执行.

delcare @ls_test varchar
set @ls_test='A_0' --A_0是表TABLE的字段
exec('select "+@ls_test+' from TABLE')
Freeper 2003-08-19
  • 打赏
  • 举报
回复
TO mikel大虾: 那怎样使用动态SQL呢??恳请赐教!!

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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