表create table t_config(col1 varchar2(30) ,col2 varchar2(30),col3 varchar2(30),col4 varchar2(30)) ;数据:col1 col2 col3 col4 
10 ='4' <>'1210072','1210082'
 in ('4','6','7')  
20 !='4'  in ('1210072','1210082') in ('4','6','7')  
30 !='4' not in ('1210072','1210082') in ('4','6','7')  
40 ='4' not in ('1210072','1210082') in ('4','6','7')  
50 !='4'  in ('1210072','1210082') in ('4','6','7')  
我已知道col2,col3,col4的数据,分别为var1,var2,var3,怎样获取col1的数据:这样写肯定是错误的SELECT COL1 FROM t_config WHERE var1 col2  and var2 col3 and var3 col4请问我怎样得到数据?

解决方案 »

  1.   

    表数据是:
    col1 col2 col3                       col4
    10 ='4' not in '1210072','1210082' in ('4','6','7') 
    20 !='4'  in ('1210072','1210082') in ('4','6','7') 
    30 !='4' not in ('1210072','1210082') in ('4','6','7') 
    40 ='4' not in ('1210072','1210082') in ('4','6','7') 
    50 !='4'  in ('1210072','1210082') in ('4','6','7') 
      

  2.   

    没看明白,你col1,col2,col3,col4的值分别是什么
      

  3.   

    表数据是:
    col1 col2       col3                                     col4
    10   ='4'       not in '1210072','1210082'               in ('4','6','7')  
    20   !='4'      in ('1210072','1210082')                 in ('4','6','7')  
    30   !='4'      not in ('1210072','1210082')             in ('4','6','7')  
    40   ='4'       not in ('1210072','1210082')             in ('4','6','7')  
    50   !='4'      in ('1210072','1210082')                 in ('4','6','7')  
      

  4.   

    表数据是:
    col1  col2  col3  col4              
    10    ='4'  not in '1210072','1210082'  in ('4','6','7')  
    20    !='4' in ('1210072','1210082')  in ('4','6','7')  
    30    !='4' not in ('1210072','1210082')  in ('4','6','7')  
    40    ='4'  not in ('1210072','1210082')  in ('4','6','7')  
    50    !='4' in ('1210072','1210082')  in ('4','6','7')  
      

  5.   

    这里的表格好像不能够格式化,我用内容表达吧,如第一行
    col1内容10
    col2内容= '4 '
    col3内容not   in   '1210072 ', '1210082 '
    col4内容in   ( '4 ', '6 ', '7 ')  
      

  6.   

    SELECT COL1 FROM t_config ---这样应该搞定了啊。。
      

  7.   

    create table t_config
    (col1 varchar2(30),
    col2 varchar2(30),
    col3 varchar2(30),
    col4 varchar2(30));insert into t_config values(
    '10', '=''4''', 'not in ''1210072'',''1210082''', 'in (''4'',''6'',''7'')');select * from t_config;declare
      var1 varchar2(30);
      var2 varchar2(30) := '=''4''';
      var3 varchar2(30) := 'not in ''1210072'',''1210082''';
      var4 varchar2(30) := 'in (''4'',''6'',''7'')';
    begin
      select col1 into var1 from t_config
        where col2=var2 and col3=var3 and col4=var4;
      dbms_output.put_line(var1);
    end;
      

  8.   

    楼主的问题是一个动态拼接SQL查询的问题,可以使用动态游标方式来执行。其中需要注意一点的是执行前需要对参数中的单引号进行转义。大致的方案如下:
    varSQL varchar2(2000);
    varP2 varchar2(200);
    varP3 varchar2(200);
    varP4 varchar2(200);select col2,col3,clo4 into varP2,varP3,varP4 from table where ......;
    varSQL = 'select col1 from table2 where col2'||replace(varP2,'''','''''')||' and clo3'......;
    open cur for varSQL;