SQL SERVER 查询的时候,动态表名如何选择部分字段。

我们单位每月都会产生一张表结构一样的以日期命名的表,我针对一个月的表写了查询语句,从这个表中选取部分字段。比如:selecta.1,a.2,a.3,b.4froma,bw... 我们单位每月都会产生一张表结构一样的以日期命名的表,我针对一个月的表写了查询语句,从这个表中选取部分字段。
比如:select a.1,a.2,a.3,b.4
from a,b
where ...
由于每个月a表的结构是一样的,只是名字不同,所以想让a等查询的时候输一次就行,于是想这样实现
declare @fname varchar(30)
declare @s varchar(1000)
set @fname = 'a'
set @s = 'select '+ @fname.1,@fname.2,fname.3,b.4 + 'where...'
exec(@s)

结果系统提示,不能对varchar调用方法。不知道该怎么解决了
是自己写的问题。
实际上应该写成;
set @s = 'select' + @fname + '.1,' + @fname + '.2,' + @fname + '.3,b.4 where...'
执行就正确了
展开
 我来答
badkano
2016-05-19 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885359
团长

向TA提问 私信TA
展开全部
属于动态sql问题
所以:'select '+ @fname.1,@fname.2,fname.3,b.4 + 'where...' 这个用法就有问题,针对变量在sql语句中不是这么用的

能列举几个a和b表的数据?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式