Нужна помощь с обращением данных в столбце - PullRequest
2 голосов
/ 19 июля 2011

У меня есть столбец с именем location, и в нем есть такие данные, как:

texas_dallas florida_miami

Я пытаюсь создать инструкцию SQL, которая избавится от _ и обратит порядоктак что я получаю:

dallas texas miami florida

Пока у меня есть это утверждение, которое, кажется, избавляется от подчеркивания и дает мне только запись перед _.

SELECT SUBSTR (location, 1, INSTR (location, '_') - 1) AS выводится из общего;

У меня возникли проблемы с выяснением остальной части того, что мне нужно сделать.

Ответы [ 3 ]

4 голосов
/ 19 июля 2011

РЕДАКТИРОВАТЬ Исправлен порядок вывода.

SQL> with general as (select 'texas_dallas' as location from dual
  2      union all select 'florida_miami' from dual)
  3  select substr(location, instr(location, '_') + 1)
  4      || ' ' || SUBSTR(location, 1 , INSTR(location, '_') -1) AS output
  5  from general;

OUTPUT
-------------------------------------------------------------------------------
dallas texas
miami florida
1 голос
/ 19 июля 2011

Вы должны добавить больше к своему выражению. Сначала объедините пробел, затем используйте функцию SUBSTR, чтобы извлечь второе слово, начинающееся сразу после подчеркивания. Если не указывать длину для SUBSTR, конец текста заканчивается.

select SUBSTR(location, 1 , INSTR(location, '_')-1 ) || ' ' || SUBSTR(location, INSTR(location, '_')+1 ) AS output 
from general ;
0 голосов
/ 19 июля 2011

Вы также можете попробовать функцию REGEXP_REPLACE:

select regexp_replace(location,'^(\S+)\_(\S+)$','\2 \1') from general;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...