【问题标题】:How to split column value in Oracle sql如何在Oracle sql中拆分列值
【发布时间】:2015-08-22 13:43:08
【问题描述】:

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

这是我的场景

ID Column_Value
第011章

结果应该是

Column_Value1 Column_Value2
abcd efgh

【问题讨论】:

  • 分裂的条件是什么?
  • 如果您没有分隔符,您需要根据什么拆分它? according to this,可以根据长度使用左右函数。
  • 我需要将值拆分为两列打印,没有其他条件,您可以为此发布任何示例吗?
  • 怎么拆分???总是 4 + 4 个字符,或者...?
  • 并不总是4+4个字符,我只是举个例子,使用索引分割值。指定索引以根据我们的需要拆分值的开始和结束位置。

标签: sql string oracle select substring


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    SQLFiddle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-02
      • 1970-01-01
      相关资源
      最近更新 更多