【问题标题】:How to convert comma delimited values to records? [duplicate]如何将逗号分隔的值转换为记录? [复制]
【发布时间】:2019-09-05 02:38:19
【问题描述】:

在 Oracle SQL 中,我有一组字符串,例如...

Select 'AX', 'BC' from dual;

我需要这些字符串作为单独的记录,如下所示。

所需输出:

Column1
---------------
AX

BC

【问题讨论】:

  • 你有什么尝试,你有没有阅读任何文档?
  • 我尝试通过正则表达式连接,但它不起作用。谢谢。
  • 这些不是逗号分隔的值,只是硬编码的列值。

标签: sql oracle


【解决方案1】:

在Oracle中,你可以试试这个

with mydata as 
     (select q'[AX,BC]' mycol from dual)
       select regexp_substr(mycol, '[^,]+', 1, level) result from mydata
       connect by level <= length(regexp_replace(mycol, '[^,]+')) + 1; 

【讨论】:

    【解决方案2】:

    一种方法是这样的

    with t as (Select 'AX' col1, 'BC' col2 from dual)
    select col1 from t
    union 
    select col2 from t
    

    【讨论】:

      【解决方案3】:

      请检查以下代码。希望这有助于您取得成果。

      with table1 as
       (Select 'AX,BC' as data1 from dual)
      
      SELECT REGEXP_SUBSTR(data1, '[^,]+', 1, LEVEL) TXT
        FROM table1
      CONNECT BY level <= length(regexp_replace(data1, '[^,]+')) + 1; 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-21
        • 2012-06-18
        • 1970-01-01
        相关资源
        最近更新 更多