select * from TableName 
where substr(N1,5,1) in ('1','3','5','7','9')

解决方案 »

  1.   

    Select * from 表
    Where Convert(int,SubString(N1,5,1))%2=0
      

  2.   

    错了,正好反了Select * from 表
    Where Convert(int,SubString(reverse(N1),2,1))%2=1用这个
      

  3.   

    SELECT *
    FROM TABLE1
    WHERE (LEFT(RIGHT(N1, 2), 1) IN ('1', '3', '5', '7', '9'))
      

  4.   

    我一一试试了,结果都弹出‘ORA-00911 非法字符’错误
    我知道你们的方法都正确,知道怎么处理这种错误吗?
      

  5.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
      ls_sql:string;
    begin
      ls_sql:='SELECT * FROM dqbzw WHERE (LEFT(RIGHT(CZ, 2), 1) IN (1,3,5,7,9))';//  ls_sql:='Select * from dqbzw Where Convert(int,SubString(reverse(CZ),2,1))%2=1';
      ADOQUERY1.Close;
      adoquery1.SQL.Clear;
      adoquery1.SQL.Add(ls_sql);
      adoquery1.Open;
    end;------------------
    出现非法列名错误
      

  6.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
      ls_sql:string;
    begin
      ls_sql:='SELECT * FROM dqbzw WHERE (LEFT(RIGHT(cz, 2), 1) IN ('+
      ''''+'1'+''''+','+
      ''''+'3'+''''+','+
      ''''+'5'+''''+','+
      ''''+'7'+''''+','+
      ''''+'9'+''''+'))';  ADOQUERY1.Close;
      adoquery1.SQL.Clear;
      adoquery1.SQL.Add(ls_sql);
      adoquery1.Open;
    end;
    还是出现非法列名错误