Oracle SQL,将Number字符串分开以分别获取整数和小数

时间:2015-03-30 21:01:03

标签: sql oracle

我正在使用Oracle SQL,我有一个带有属性POST(VARCHAR2(10 BYTE))的表。我给出的数据格式为123.34,我需要一个VARCHAR2(123)和一个NUMBER(0.34)来存储在另一个表中。我试图在select语句中考虑一种方法,但无法弄明白。

1 个答案:

答案 0 :(得分:0)

您能确定该值始终为NUMBER吗?如果是这样,那么只需使用TO_NUMBER()

WITH t1 AS (
    SELECT '123.34' AS post FROM dual
)
SELECT post_num, TRUNC(post_num), post_num - TRUNC(post_num) FROM (
    SELECT TO_NUMBER(post) AS post_num FROM t1
);

如果您不确定它始终是NUMBER,那么就会有#34;安全"将字符转换为值的方法,例如,使用REGEXP_SUBSTR()

TO_NUMBER(REGEXP_SUBSTR(post, '^\d*(\.\d+)?'))