Oracle SQL - Выберите две подстроки из одной строки и объедините их в другой столбец - PullRequest
0 голосов
/ 20 апреля 2020

Использование Oracle Жаба SQL.

У меня есть одна колонка в моей test_table, в которой есть данные в таком формате:

column_1
abc-def-ghijklmn

Мне нужно точно выбрать abcdef (без '-' между ними) из строка показана выше. Я попробовал это с двумя подстроками:

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

, но это не работает (ошибка была "отсутствует правая скобка" ). Как выбрать две отдельные подстроки из строки и объединить их в новый столбец?

Ответы [ 2 ]

1 голос
/ 20 апреля 2020

Или (строки 1 и 2 - просто примерные данные; для того, что вы делаете, вы использовали бы строку 3. Она выбирает 1-е и 2-е слово из входной строки и объединяет их):

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>
0 голосов
/ 20 апреля 2020

Хитрость заключалась в том, чтобы объединить две выбранные подстроки:

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
...