从Oracle Select Query格式化字符串

its*_*ode 1 sql string oracle oracle10g

让我们说当我运行以下查询时,

SELECT NAME 
  FROM EMP;
Run Code Online (Sandbox Code Playgroud)

它返回以下2行.

NAME
------------
Jan Jones
Arne Barnie
Run Code Online (Sandbox Code Playgroud)

但我希望它采用以下格式

J. Jones
A. Barnie
Run Code Online (Sandbox Code Playgroud)

我怎么能得到那个?

Ren*_*ger 5

应该可以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;
Run Code Online (Sandbox Code Playgroud)

或者,如果您更喜欢\X符号而不是[[:...:]]符号,则可以使用

regexp_replace(name, '(.)\w* *(\w*)', '\1. \2') 
Run Code Online (Sandbox Code Playgroud)