如何在Oracle sql中拆分列值

时间:2015-06-08 07:21:17

标签: sql string oracle select substring

如何拆分没有空格或任何其他分隔符的列值。我搜索了论坛,但我无法找到适用于我的方案的解决方案。

这是我的方案

ID   Column_Value
011  abcdefgh

结果应为

Column_Value1    Column_Value2
abcd             efgh

2 个答案:

答案 0 :(得分:3)

假设您只想在中间拆分一列,您可以通过substrlength的组合来实现这一目标:

SELECT SUBSTR(column_value, 1, LENGTH(column_value) / 2),
       SUBSTR(column_value, LENGTH(column_value) / 2 + 1)
FROM   mytable

SQLFiddle

答案 1 :(得分:2)

如果您想根据字符的长度和数量拆分字符串,请使用 SUBSTR ,如下所示:

SQL> with data(str) as(
  2  select 'abcdefgh' from dual
  3  )
  4  select substr(str, 1, 4) col1,
  5         substr(str, length(substr(str, 1, 4)) +1) col2
  6  from data;

COL1 COL2
---- ----
abcd efgh

SQL>

在上方,您可以将4的值更改为所需的值。请记住,两者并不相互排斥。