【问题标题】:Oracle SQL - Select two substrings from one string and combine them in another columnOracle SQL - 从一个字符串中选择两个子字符串并将它们组合在另一列中
【发布时间】:2020-04-20 11:54:25
【问题描述】:

使用 Oracle Toad SQL。

我的 test_table 中有一列包含这种格式的数据:

column_1
abc-def-ghijklmn

我需要从上面显示的行中准确选择abcdef(它们之间没有'-')。我尝试了两个子字符串:

SELECT (SUBSTR(column_1, 0, 3), SUBSTR(column_1, 5,3)) FROM test_table

但它不起作用(错误是“缺少右括号”)。 如何从一行中选择两个单独的子字符串并将它们组合到一个新列中?

【问题讨论】:

    标签: sql oracle substr toad


    【解决方案1】:

    或者(第 1 行和第 2 行只是示例数据;您将使用第 3 行来执行您的操作。它从输入字符串中获取第一个和第二个 单词 并将它们连接起来):

    SQL> with test (col) as
      2    (select 'abc-def-ghijklmn' from dual)
      3  select regexp_substr(col, '\w+', 1, 1) || regexp_substr(col, '\w+', 1, 2) result
      4  from test;
    
    RESULT
    ------
    abcdef
    
    SQL>
    

    【讨论】:

      【解决方案2】:

      诀窍是连接两个选定的子字符串:

      SELECT CONCAT(SUBSTR(column_1, 0, 3), SUBSTR(column_1, 5,3)) FROM test_table
      

      如果您需要连接两个以上选定的子字符串,则必须使用连接运算符 ||。示例:

      SELECT (SUBSTR(column_1, 0, 3) || SUBSTR(column_1, 5,3) || SUBSTR(column_1, 5,2)) FROM test_table
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-03
        • 1970-01-01
        • 2020-01-08
        • 2011-05-22
        • 1970-01-01
        • 2021-07-28
        相关资源
        最近更新 更多