Форматирование строки из Oracle Select Query - PullRequest
1 голос
/ 28 февраля 2011

Допустим, когда я запускаю следующий запрос,

SELECT NAME 
  FROM EMP;

Возвращает следующие 2 строки.

NAME
------------
Jan Jones
Arne Barnie

Но я хотел это в следующем формате

J. Jones
A. Barnie

Как я могу получить это?

Ответы [ 2 ]

5 голосов
/ 28 февраля 2011

Это должно быть возможно с regexp_replace:

with names as (
  select 'Jan Jones'   name from dual union all
  select 'Arne Barnie' name from dual
)
select
  regexp_replace(name, '(.)[[:alpha:]]* *([[:alpha:]]*)', '\1. \2') name
from
  names;

В качестве альтернативы, если вы предпочитаете запись \X над записью [[:...:]], вы можете использовать

regexp_replace(name, '(.)\w* *(\w*)', '\1. \2') 
0 голосов
/ 28 февраля 2011

Для этого нет коротких путей типа DECODE Я думаю, что это ваша лучшая ставка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...