Oracle DB中的Concat VARCHAR2字段

时间:2014-05-12 03:29:01

标签: sql oracle11g concat sql-view

对于SQL视图,我想连接两个varchar2-type

的fiels
ROW  |  PNAME | FNAME
1    | JOHN   | DOE
2    | (null) | DOE
3    | JOHN   | (null)
4    | (null) | (null)

我想得到的结果是

1  | 'JOHN DOE'
2  | 'DOE'
3  | 'JOHN'
4  | (null)

我能做到的最好看起来像这样

SELECT USER.PNAME || ' ' || USER.FNAME AS "NAME"

但这给了我以下结果

1  | 'JOHN DOE'
2  | ' DOE'
3  | 'JOHN '
4  | ' '   

我知道为什么我会得到这个结果,但我怎么能摆脱我不想在结果中留下的过时空白?

我正在使用Oracle 11g。

2 个答案:

答案 0 :(得分:2)

SELECT TRIM(USER.PNAME || ' ' || USER.FNAME) AS "NAME"

答案 1 :(得分:0)

您可以使用:

SELECT DECODE(USER.PNAME,"",USER.PNAME,USER.PNAME || ' ') || USER.FNAME AS "NAME"