在sql里怎么把一个数值型的字段中小数点后的数值取出来? 比如t2.s_t的数值是99.67,类型是number(10,2)用下面的sql会报错,substring只能截varchar的,那number(10,2)的截取怎么写呢?select substring(t2.s_t,3,2) from table t2 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SELECT SUBSTR (TO_CHAR (t2.s_t), DECODE (INSTR (TO_CHAR (t2.s_t), '.'), 0, NULL, INSTR (TO_CHAR (t2.s_t), '.') + 1 ), 2 ) FROM table t2 select s_t - trunc(s_t) from t2 create table t2(s_t number(10,2))insert into t2 values(99.67)select s_t - trunc(s_t) from t2/*MARKS_T-TRUNC(MARKS_T)---------------------- .671 row selected.*/ create table t2(s_t number(10,2))insert into t2 values(99.67)insert into t2 values(-99.67)select t2.* , s_t - trunc(s_t) from t2/* MARKS_T MARKS_T-TRUNC(MARKS_T)---------- ---------------------- 99.67 .67 -99.67 -.672 rows selected.*/ select substr(to_char(t.s_t-trunc(t.s_t)),2) from tab1 t 好注意,如负数不行加个ABS就行select ABS(s_t) - ABS(trunc(s_t)) from t2 select substr(98.92,instr(98.92,'.')+1)from dual; 请教几个关于ASM概念性的问题 Oracle ODBC开发问题? 求一个客户ID的高效校验方法 occi开发 这个问题不晓得有没有人会??? Oracle单表的最大存储条数可以达到多少? PL—SQL 关于表格导出的问题 oracle和sql,该选择哪个? 为什么装oracle时,报安装目录空间不够。但空间肯定是够的 求解,Oracle查询时,如何让特定的记录显示在最前面 oracle自定义函数插入if/else if/else/end if 后编译出现PLS-00103错误!
DECODE (INSTR (TO_CHAR (t2.s_t), '.'),
0, NULL,
INSTR (TO_CHAR (t2.s_t), '.') + 1
),
2
)
FROM table t2
MARKS_T-TRUNC(MARKS_T)
----------------------
.671 row selected.
*/
---------- ----------------------
99.67 .67
-99.67 -.672 rows selected.*/
好注意,如负数不行加个ABS就行
select ABS(s_t) - ABS(trunc(s_t)) from t2