转成char型,取最后一位 select to_number(substr(to_char(123),-1)) from dual
-- 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
尝试1楼给的方法: select substr(to_char('1234567'),-1) from dual;确实不错,借lz的光我也受益了,如果没有看到1楼的答案,我会给出下面的答案:select substr(to_char('1234567'),length(to_char('1234567')),1) from dual;不过不如1楼的好,我的答案比较麻烦
如果是小数就不行了 select to_number(substr(to_char(123.445), -1)) from dual 5 小数要怎么解决
select to_number(substr(to_char(123),-1)) from dual
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
select substr(to_char('1234567'),-1) from dual;确实不错,借lz的光我也受益了,如果没有看到1楼的答案,我会给出下面的答案:select substr(to_char('1234567'),length(to_char('1234567')),1) from dual;不过不如1楼的好,我的答案比较麻烦
select to_number(substr(to_char(123.445), -1)) from dual
5
小数要怎么解决