首页 > 解决方案 > Oracle SQL - 从一个字符串中选择两个子字符串并将它们组合在另一列中

问题描述

使用 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

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

标签: sqloraclesubstrtoad

解决方案


或者(第 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>

推荐阅读