SQL(oracle):数字字段是否等同于substr?

时间:2014-03-17 20:19:17

标签: sql oracle substring

要从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?

1 个答案:

答案 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