From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | "Dean Gibson (DB Administrator)" <postgresql(at)ultimeth(dot)com> |
Cc: | pgsql-sql <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: Trailing spaces - is there an easier way? |
Date: | 2010-11-04 19:42:21 |
Message-ID: | AANLkTinNRgvDzk+=098PbtwzqUPxhs9DyrwTgYULjRhc@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
2010/11/4 Dean Gibson (DB Administrator) <postgresql(at)ultimeth(dot)com>:
> I'm sure this has been asked before, but I couldn't find it:
>
> I have a "zzz CHAR (8)" field. It needs to be CHAR because trailing spaces
> need to be ignored for most operations. However, I need to concatenate it
> with another (literal) string and need the spaces to be significant in that
> operation. The ONLY WAY I could find to do it in v9.0.1 was (represented
> in the following function):
>
> CREATE OR REPLACE FUNCTION padded( field CHAR ) RETURNS TEXT
> RETURNS NULL ON NULL INPUT
> IMMUTABLE
> LANGUAGE SQL AS $SQL$
> SELECT RPAD( $1, OCTET_LENGTH( $1 ) )
> $SQL$;
>
> And then of course I write:
>
> SELECT padded( zzz ) || '/' || ...
>
> Is there a better way?
>
>
nic=# SELECT 'AAAA '::char(6) || 'bbbb';
?column?
----------
AAAAbbbb
(1 row)
Time: 2.710 ms
nic=# SELECT 'AAAA '::char(6)::cstring || 'bbbb';
?column?
------------
AAAA bbbb
(1 row)
regards
Pavel Stehule
From | Date | Subject | |
---|---|---|---|
Next Message | Kenneth Marshall | 2010-11-04 19:47:46 | Re: Trailing spaces - is there an easier way? |
Previous Message | Dean Gibson (DB Administrator) | 2010-11-04 19:03:48 | Trailing spaces - is there an easier way? |