From: | Kenneth Marshall <ktm(at)rice(dot)edu> |
---|---|
To: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
Cc: | "Dean Gibson (DB Administrator)" <postgresql(at)ultimeth(dot)com>, pgsql-sql <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: Trailing spaces - is there an easier way? |
Date: | 2010-11-04 19:47:46 |
Message-ID: | 20101104194746.GK27429@aart.is.rice.edu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On Thu, Nov 04, 2010 at 08:42:21PM +0100, Pavel Stehule wrote:
> 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
>
Here is a link to some useful other pseudo types:
http://www.postgresql.org/docs/9.0/interactive/datatype-pseudo.html
Regards,
Ken
From | Date | Subject | |
---|---|---|---|
Next Message | Ralph Smith | 2010-11-04 20:07:02 | Re: I'm stuck - I just can't get this small FUNCT to run! |
Previous Message | Pavel Stehule | 2010-11-04 19:42:21 | Re: Trailing spaces - is there an easier way? |