bill表里有一个字段名字叫:TaskSeq的最后一位代表去查询的表的序列号比如 TaskSeq的值为100200610,那么就根据最后一位0,去查table0表select * from bill where number in ( select number from table0 where startTime > 3 )sql语句怎么写呀.谢谢

解决方案 »

  1.   

    select substr('ABCD',-1)--
    D
      

  2.   

    哦,我用的ORACLE 环境
    SQLSERVER应该是substring
      

  3.   

    哦!忘说了TaskSeq为 NUMBER(10),类型。table表共有10个.从0到9.也就是table0,table1,table2……table9.我只是举了个例子,比如 TaskSeq的值为100200611,那么就根据最后一位1,去查table1表。要可以动态去查这10个表的sql语句
      

  4.   

    case when then endOracle里面照样用
      

  5.   

    declare
      v_str varchar(100);
    begin
      select TaskSeq
         into v_str from bill where 条件;
      select * from ||'table'||substr(to_char(v_str)9,1); 
    end;