表test  字段id VARCHAR类型 想取它的后四位  请问怎么写这条sql啊?

解决方案 »

  1.   

    select 
    substr(id, length(id)-4,length(id)) as id
    from test;
      

  2.   

    select 
    substr(id, 1,length(id)-4) as id
    from test;
      

  3.   

    select substr(id,length(id)-4+1) as id
    from test;
      

  4.   

     select substr(c1,length(c1)-4+1) from t1
      

  5.   

    select decode(length(id),1,id,2,id,2,id,4,id,substr(id, length(id)-4,length(id)) as id
    from test;
      

  6.   


    SQL> with tmp as (
      2       select '12345' data from dual union all
      3       select '1' data from dual union all
      4       select '123' data from dual
      5       )
      6  select substr(data, -least(length(data), 4))
      7    from tmp;
     
    SUBSTR(DATA,-LEAST(LENGTH(DATA
    ------------------------------
    2345
    1
    123