两个表,tab1(有列名为A)和tab2(有列名为B),tab2表的B列值为(A between 10 and 20)or A=30 or A=60,现在对tab1表写select * from tab1 where (A between 10 and 20)or A=30 or A=60,也就是说,tab1后面的where子句部分和tab2表的B列的值完全一样,请问如何实现tab2.B的值代替select * from tab1的where部分。
调试欢乐多
v_sql varchar2(2000);
v_table varchar2(20);
begin
v_table :='tab_a';
v_sql := 'select * from ' || v_table || ' where (A between 10 and 20)or A=30 or A=60)';
execute immediate v_sql;
end;
--可以做个参数,调用
--A可以换成列数字,如第一列为1,如果tab_a,tab_b中a,b相同