要从oracle sql中的字符串中检索位置X和Y 之间的字符,我可以
substr(string_var, X, Y)
如果我需要从位置X和Y之间的数字中获取数字怎么办? (即如果我想要数字123456 = 34中的第三和第四位数)
我知道我可以
substr(to_char(numeric_var), X, Y)
但是如果我需要将输出视为数字呢?我必须做吗
to_number(substr(to_char(numeric_var), X, Y))
或者数字字段是否等同于substr?
答案 0 :(得分:3)
Oracle将为您进行类型转换:
with foo(bar) as
(select 123456 from dual union
select 654321 from dual union
select 434343 from dual)
select substr(bar,3,2),
substr(bar,3,2) + 10
from foo;
SUBSTR(BAR,3,2) SUBSTR(BAR,3,2)+10
--------------- ------------------
34 44
43 53
43 53