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...'
执行就正确了 展开
比如: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...'
执行就正确了 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询