SQL命令中select * from table1 where 字段名=xxx,其中字段名可否用变量表示

cm 2001-08-26 05:11:07
SQL命令中select * from table1 where 字段名=xxx,其中字段名可否用变量表示
如a1,或其它方法实现此功能?







...全文
601 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pausing 2001-08-28
  • 打赏
  • 举报
回复
select * from tablename where colunmname='"& frm1.txt1.text&"'
yangyangxue 2001-08-28
  • 打赏
  • 举报
回复
如果这个变量可以从其它表中select出来,就没必要写Procedure,太麻烦
flyshi 2001-08-27
  • 打赏
  • 举报
回复
用动态光标也可以
general2000 2001-08-27
  • 打赏
  • 举报
回复
好象不管用吧,我以前用PB就是想用变量去做字段名,害死我了,搞了半天还没有搞定
我不知道在ORALCE里面不知道有没有
swordmanli 2001-08-27
  • 打赏
  • 举报
回复

可以采用case来完成。

table t1( fd1 , fd2, fd3, fd4)
declare @flag int

set @flag = //根据情况进行赋值
select *
from t1
where @变量值 = case @flag
when 1 then fd1
when 2 then fd2
when 3 then fd3
when 4 then fd4
end

此方法可以使用两个参数,一个表示参数的性质,一个表示参数的值。
@flag 表示地区、省份、城市
@变量中存储 相应的具体的地区编号、省份编号、城市编号












smartdonkey 2001-08-27
  • 打赏
  • 举报
回复
在sql server 中是这样的:
您的表假设是这样的:
create table mytable(col1 char(10) not null,col2 char(20))
假设建立一个存储过程:
create procedure sp_test @f_name varchar(40),@f_value varchar(20)--其中@f_name位字段名字,@f_value为对应的查询的字段值
as
declare @sql varchar(1024)
select @sql='select col1,col2 from mytable where' +@f_name+' = ''''+@f_value+''''
execute(@sql)
go
cm 2001-08-27
  • 打赏
  • 举报
回复
to KingSunSha(弱水三千) :我用asp写程序,where ' ¦¦ fieldname ¦¦ '=xxxx';中||是何格式?
KingSunSha 2001-08-26
  • 打赏
  • 举报
回复
对不起,忘了赋值

declare
fieldname varchar2(20);
begin
fieldname := 'A1';
execute immediate 'select ... where ' ¦¦ fieldname ¦¦ '=xxxx';
end;
KingSunSha 2001-08-26
  • 打赏
  • 举报
回复
declare
fieldname varchar2(20);
begin
execute immediate 'select ... where ' || fieldname || '=xxxx';
end;

34,594

社区成员

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

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