Robust ways for checking allowed values in a column
I tried the following:
select form from mytable where form ~
'^Canal$|^Drain$|^Foreshore$|^inlandRiver$|^Lake$|^lockOrFlightOfLocks$|^Marsh$|^Researvoir$|^Sea$|^tidalRiver$|^Transfer$'
I used ^ and $ to ensure checking of allowed values.
However, 'Backyard' was selected.
Why is that?
Regards,
David
Le mar. 25 janv. 2022 à 14:56, Shaozhong SHI <shishaozhong@gmail.com> a
écrit :
I tried the following:
select form from mytable where form ~
'^Canal$|^Drain$|^Foreshore$|^inlandRiver$|^Lake$|^lockOrFlightOfLocks$|^Marsh$|^Researvoir$|^Sea$|^tidalRiver$|^Transfer$'I used ^ and $ to ensure checking of allowed values.
However, 'Backyard' was selected.
Why is that?
It works for me:
# select 'Backyard' ~
'^Canal$|^Drain$|^Foreshore$|^inlandRiver$|^Lake$|^lockOrFlightOfLocks$|^Marsh$|^Researvoir$|^Sea$|^tidalRiver$|^Transfer$';
┌──────────┐
│ ?column? │
├──────────┤
│ f │
└──────────┘
(1 row)
So you will probably need a complete and reproducible example so that we
could test it.
--
Guillaume.
On Tue, Jan 25, 2022 at 6:56 AM Shaozhong SHI <shishaozhong@gmail.com>
wrote:
select form from mytable where form ~
'^Canal$|^Drain$|^Foreshore$|^inlandRiver$|^Lake$|^lockOrFlightOfLocks$|^Marsh$|^Researvoir$|^Sea$|^tidalRiver$|^Transfer$'
You do not need to repeat the boundary metacharacters on each branch. You
can assert their presence just once and then use parentheses to group the
alternations.
form ~ '^(?Canal|Drain|etc...)$'
David J.
On 25/01/2022 13:55, Shaozhong SHI wrote:
I tried the following:
select form from mytable where form ~
'^Canal$|^Drain$|^Foreshore$|^inlandRiver$|^Lake$|^lockOrFlightOfLocks$|^Marsh$|^Researvoir$|^Sea$|^tidalRiver$|^Transfer$'I used ^ and $ to ensure checking of allowed values.
However, 'Backyard' was selected.
Why is that?
Sounds like a candidate for a foreign key relationship.
Ray.
--
Raymond O'Donnell // Galway // Ireland
ray@rodonnell.ie
How about adding null as an alteration.
Would this be robust?
Regards,
David
On Tue, 25 Jan 2022 at 14:25, David G. Johnston <david.g.johnston@gmail.com>
wrote:
Show quoted text
On Tue, Jan 25, 2022 at 6:56 AM Shaozhong SHI <shishaozhong@gmail.com>
wrote:select form from mytable where form ~
'^Canal$|^Drain$|^Foreshore$|^inlandRiver$|^Lake$|^lockOrFlightOfLocks$|^Marsh$|^Researvoir$|^Sea$|^tidalRiver$|^Transfer$'You do not need to repeat the boundary metacharacters on each branch. You
can assert their presence just once and then use parentheses to group the
alternations.form ~ '^(?Canal|Drain|etc...)$'
David J.
On 1/25/22 09:35, Shaozhong SHI wrote:
How about adding null as an alteration.
Would this be robust?
Regards,
David
On Tue, 25 Jan 2022 at 14:25, David G. Johnston
<david.g.johnston@gmail.com> wrote:On Tue, Jan 25, 2022 at 6:56 AM Shaozhong SHI
<shishaozhong@gmail.com> wrote:select form from mytable where form ~
'^Canal$|^Drain$|^Foreshore$|^inlandRiver$|^Lake$|^lockOrFlightOfLocks$|^Marsh$|^Researvoir$|^Sea$|^tidalRiver$|^Transfer$'You do not need to repeat the boundary metacharacters on each
branch. You can assert their presence just once and then use
parentheses to group the alternations.form ~ '^(?Canal|Drain|etc...)$'
David J.
You would need to add form ~ 'expression' or form is null
And a body of held water is a reservoir (no 'a')