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)
我怎么能得到那个?
应该可以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)