如何在 Oracle sql 中拆分列值

How to split column value in Oracle sql

如何拆分没有 space 或任何其他分隔符的列值。我搜索了论坛,但找不到适合我的情况的解决方案。

这是我的场景

ID   Column_Value
011  abcdefgh

结果应该是

Column_Value1    Column_Value2
abcd             efgh

假设您只想在中间拆分一列,您可以通过组合 substr and length:

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

SQLFiddle

如果要根据长度和字符数拆分字符串,则使用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的值更改为您想要的值。请记住,两者并不相互排斥。