declare
fieldname varchar2(20);
begin
execute immediate 'select ... where ' || fieldname || '=xxxx';
end;
fieldname varchar2(20);
begin
execute immediate 'select ... where ' || fieldname || '=xxxx';
end;
调试欢乐多
fieldname varchar2(20);
begin
fieldname := 'A1';
execute immediate 'select ... where ' ¦¦ fieldname ¦¦ '=xxxx';
end;
您的表假设是这样的:
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
可以采用case来完成。table t1( fd1 , fd2, fd3, fd4)
declare @flag intset @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 表示地区、省份、城市
@变量中存储 相应的具体的地区编号、省份编号、城市编号
我不知道在ORALCE里面不知道有没有