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