类型为number,怎么截取最有一位数字?

解决方案 »

  1.   

    转成char型,取最后一位
    select to_number(substr(to_char(123),-1)) from dual
      

  2.   

    -- TRY IT ..
    SQL> DESC TEST_NUM;
    Name  Type   Nullable Default Comments 
    ----- ------ -------- ------- -------- 
    ID    NUMBER Y                         
    NDATE DATE   Y                         
    NUM   NUMBER Y                         SQL> SELECT * FROM TEST_NUM;        ID NDATE              NUM
    ---------- ----------- ----------
             2 1/1/2008           200
             2 1/4/2008           300
             3 1/8/2008           100
             3 1/10/2008          101
             4 1/15/2008          500
             4 1/18/2008          300
             2 1/10/2008          2507 rows selectedSQL> SELECT SUBSTR(NUM,-1,1) LAST_STR
      2    FROM TEST_NUM;LAST_STR
    --------
    0
    0
    0
    1
    0
    0
    07 rows selected
      

  3.   

    尝试1楼给的方法:
    select substr(to_char('1234567'),-1) from dual;确实不错,借lz的光我也受益了,如果没有看到1楼的答案,我会给出下面的答案:select substr(to_char('1234567'),length(to_char('1234567')),1) from dual;不过不如1楼的好,我的答案比较麻烦
      

  4.   

    如果是小数就不行了
    select to_number(substr(to_char(123.445), -1)) from dual
    5
    小数要怎么解决