从Oracle Select Query格式化字符串

时间:2011-02-28 20:40:02

标签: sql oracle string oracle10g

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

SELECT NAME 
  FROM EMP;

返回以下2行。

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

但我希望它采用以下格式

J. Jones
A. Barnie

我怎么能得到它?

2 个答案:

答案 0 :(得分: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;

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

regexp_replace(name, '(.)\w* *(\w*)', '\1. \2') 

答案 1 :(得分:-1)

没有像DECODE这样的捷径可以做到这一点 I think this is your best bet.