如果表的字段是一个变量,select语句该怎么写??

leepoy 2003-05-07 09:09:29
表g_zpjhb结构如下:
mitem 1jhsl 2jhsl 3jhsl....
aa 10 2 5...
bb 4 1 1..


select 2jhsl from g_zpjhb where mitem=‘aa’

如果我的字段2jhsl由变量@jhts得到,那么语句该怎么写?
...全文
77 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
fingerfox 2003-05-07
  • 打赏
  • 举报
回复
学习。
erigido 2003-05-07
  • 打赏
  • 举报
回复
我都快看糊涂了
wenqiangs1 2003-05-07
  • 打赏
  • 举报
回复
可悲啊,你们都没有搞清楚作者的问题,其实很简单。
declare @jhts varchar(60)
set @jhsl='hh'
select @jhsl from g_zpjhb where mitem=‘aa’
就可以了
mjhnet 2003-05-07
  • 打赏
  • 举报
回复
按偶很菜的方法做,不过你要保证返回的记录集的记录只有一条!!!
happydreamer 2003-05-07
  • 打赏
  • 举报
回复
declare @sql varchar(1000)
set @sql=N'select @dtsl = @a from g_zpjhb '

exec sp_executesql @sql,N'@dtsl varchar(2000) output,@a varchar(100)',@dtsl output,@a varchar(100)
happydreamer 2003-05-07
  • 打赏
  • 举报
回复
declare @sql varchar(1000)
set @sql=N'select @dtsl = @a from g_zpjhb '

exec sp_executesql @sql,N'@dtsl varchar(2000) output,@a varchar(100)',@dtsl output,@a
leepoy 2003-05-07
  • 打赏
  • 举报
回复
用exec('select ' + @字段 + ' from sales')方法是可以取到,但是如果我要取到结果,又该怎么办呢?

exec('select ' +@dtsl+'='+@a+' from g_zpjhb ')有问题:


Line 1: Incorrect syntax near '='.

mjhnet 2003-05-07
  • 打赏
  • 举报
回复
use pubs
go

declare @字段 char(6)
set @字段 = 'qty'
exec('select ' + @字段 + ' from sales')
CrazyFor 2003-05-07
  • 打赏
  • 举报
回复
select 2jhsl from g_zpjhb where mitem=‘aa’

如果这个SQL中只有一条记录,那么可以象上面兄弟们说的那样,否则只能用游标来做.
joygxd 2003-05-07
  • 打赏
  • 举报
回复
select case when @jhsl=2jhsl then 2jhsl end as 2jhsl
from g_zpjhb
where mitem=‘aa’
Danphel 2003-05-07
  • 打赏
  • 举报
回复
declare @jhts varchar(50)
set @jhts=(Select 2jhsl from g_zpjhb)

select @2jhts from g_zpjhb where mitem=‘aa’
mjhnet 2003-05-07
  • 打赏
  • 举报
回复
--请使用sqlserver自带的pubs数据库测试

declare @sql nvarchar(1000)
declare @a char(8)
declare @dtsl1 int

set @a = 'stor_id' --字段名称
set @sql=N'select @dtsl = '+ @a +' from sales where qty=75'

exec sp_executesql @sql,N'@dtsl varchar(2000) output',@dtsl1 output

print @dtsl1
leepoy 2003-05-07
  • 打赏
  • 举报
回复
谢谢大家,不过我试过没一种方法,都没有达到我想要的结果求,我的字段名是由变量@a得到,他们的值可能为1jhsl,2jhsl....31jhsl,然后在从表中取出该字段的值,并付给变量@dtsl,达到类似于

如果变量@a=2jhsl则语句要达到
select @dtsl=2jhsl from g_zpjhb where mitem = 'aa'的功能。


不知道各位还有没有方法?分不够再加

34,838

社区成员

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

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