如何创建字符串连接运算符,在char(n)中保留尾随空格

时间:2014-07-26 20:12:09

标签: sql postgresql string-concatenation

如何创建字符串连接运算符,它在Postgres中的CHAR(n)类型列上保留尾随空格? 我试过下面的代码,但是

create temp table test (col1  char(2)) on commit drop;
insert into test values ('A');
select col1 + 'B'
   from test;

返回AB(不含空格)。 如何强制它返回A B(在A之后保留空格,因为A类型是char(2)),以便表达式col1 + 'B'保持不变? 如果左参数类型为CHAR(n),如何保留左参数尾随空格?

CREATE OR REPLACE FUNCTION public.stringconcat(left text, right text)
RETURNS text
LANGUAGE sql IMMUTABLE
AS $BODY$
SELECT $1::text || $2::text ;
$BODY$;

CREATE OPERATOR public.+ (
    leftarg = text,
    rightarg = text,
    procedure = public.stringconcat
);

1 个答案:

答案 0 :(得分:2)

使用string functions

SELECT concat('A'::char(2), 'B');