translate(字段A,'123','111') like '1%'这种做法,仅限在比较一个字符开头的

解决方案 »

  1.   

    谢谢 ORARichard(没钱的日子......),不过好像不是我要求的结果。
    另外 translate 是什么意思?
      

  2.   

    SQL> select * from zt;A                   B
    ---------- ----------
    1001                1
    1002                2
    2001                3
    3001                4
    4001                5
    5001                6
    4002                6SQL> select * from zt where substr(a,1,1) = 1 or substr(a,1,1) = 2 or substr(a,1,1) = 3;
       你可以把OR改成UNION ALL语句。A                   B
    ---------- ----------
    1001                1
    1002                2
    2001                3
    3001                4或者:
    SQL> select * from zt where decode(substr(a,1,1),1,'@',2,'@',3,'@',a) = '@';A                   B
    ---------- ----------
    1001                1
    1002                2
    2001                3
    3001                4
      

  3.   

    translate(substr(字段A,1,1),'123','111') ='1'orsubstr(字段A,1,1) in ('1','2','3')