Re: Trouble with IN operator

From: Chuck Roberts <croberts(at)gilsongraphics(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Chris Campbell <ccampbell(at)cascadeds(dot)com>, PSql novice list <pgsql-novice(at)postgresql(dot)org>
Subject: Re: Trouble with IN operator
Date: 2017-02-03 18:48:49
Message-ID: CAByBP0pUZJ74SprJv_jPWwUCb6EwfH0O0sVkSGH3U5R+-fdCZg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

Yes there is data that matches the criteria of the IN condition. When I
remove the clause with the IN, I get all kinds of records that look like
they match the criteria. The tbl.costcenter is a string of 3 characters,
but it only contains numbers which are zero padded, like '001', '540',
'900'. There should be no room for odd characters, even though users do
enter this number.

Also I tried a case-insensitive regex, and that didn't work either. Ex:
AND (tbl.costcenter ~* '(540|001|900)')

Thanks!

On Fri, Feb 3, 2017 at 1:40 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:

> Chuck Roberts <croberts(at)gilsongraphics(dot)com> writes:
> > I think this might be a data problem. If anyone else has an idea, it's
> > welcome.
>
> Well, the obvious question is, are you sure you have records that *should*
> match the condition?
>
> Plain "trim" is not very bright, it will only remove characters that are
> plain ASCII spaces. I'm wondering a bit about whether there's carriage
> returns, tabs, non-breaking spaces, or other weird kinds of whitespace in
> your data, which might make it so records that look like they contain
> "540" don't actually match.
>
> regards, tom lane
>

In response to

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message David G. Johnston 2017-02-03 18:52:11 Re: Trouble with IN operator
Previous Message Tom Lane 2017-02-03 18:40:58 Re: Trouble with IN operator