在线求助 关于SQL动态的获取列名查询的问题
Table
--drop table T;
create table T(
id varchar pirmary key,
month_1 int not null,
month_2 int notnull,
month_3 int not null,
date_tima datetime,
month_sum int not null
)
insert into T values('1',1,2,3,'2011-4-1',6);
insert into T values('2',1,2,3,'2011-4-1',6);
insert into T values('3',1,2,3,'2011-4-1',6);
怎样才能对列名进行模糊查询
比如 我想根据时间查Month_1的数据该怎么实现
select (select @列名 from T where Convert(varchar,date_time,120) like '2011%' and @列名= 'month_'CONVERT(varchar,MONTH(GETDATE())) ) from T
[解决办法]
select * from syscolumns;
[解决办法]
要用动态执行的方法
示例:
DECLARE @AA VARCHAR(100);
DECLARE @BB VARCHAR(100);
SET @AA='BH';
SET @BB='SELECT '+@AA+' FROM ZW1.DBO.BYGZ WHERE GDGZ=626';
EXEC (@BB);