调查中的小插曲450字:如何在select语句中使用变量进行查询

来源:百度文库 编辑:高校问答 时间:2024/05/09 05:08:50
例如有一成绩表(chengji)
name yuwen shuxue yingyu
aa 100 88 106
bb 90 120 95

如果明确知道想查询语文成绩可以写成:
select yuwen
from chengji

但现实中也许并不知道会查询哪一科成绩,我想将字段名用变量来代替,详细内容如下:
declare @subject char(10)
set @subject='yuwen'
select @subject
from chengji
实际运行后证明是错误的,select语句中出现变量时,被看作是赋值语句而非查询语句。
所以我的问题是:如何在select语句中使用变量进行查询。
谢谢

当字段名、表名为变量时,可以使用动态SQL语句。
declare @columnname varchar(20)
set @columnname='yuwen'
exec('select '+@columnname+' from chengji') --单引号内的空格不能省

val=get(hObject,'value');
shengming={'安徽','北京','福建','甘肃','广东','广西','贵州','海南','河北','河南',...
'黑龙江','湖北','湖南','吉林','江苏','江西','辽宁','内蒙古','宁夏','青海',...
'山东','山西','陕西','上海','四川','天津','西藏','新疆','云南','浙江','重庆'};
str=shengming(val);
conna=database('climateuser','','');
curs=exec(conna,['select NAME from STATION_INFO where PROVINCE=str']);
curs=fetch(curs);
data=curs.Data;
close(curs)
close(conna)
有这么一段程序,hObject为一popupmenu点击后返回个值,如何让数据库调用各省内市的名字。通过定义str为一变量不可以,程序总显示错误。