Обсуждение: if !NULL ?
ok, so more odd-ball questions I have two columns in a table: bool_bill | billing_id one is a boolean that determines if we bill a customer, and the other one is NULL if we don't, and has a billing_id of that customer if we do. the billing_id uses a foreign key on the billing table to check that the billing_id exists. what I'd like to do is if bool_bill = y, then there has to be something in billing_id (automatically checked with the foreign key). again, do I need a function for this? thanks!!! -lev
On Thu, 16 May 2002, Lev Lvovsky wrote: > > ok, so more odd-ball questions > > I have two columns in a table: > > bool_bill | billing_id > > one is a boolean that determines if we bill a customer, and the other one > is NULL if we don't, and has a billing_id of that customer if we do. the > billing_id uses a foreign key on the billing table to check that the > billing_id exists. > > what I'd like to do is if bool_bill = y, then there has to be something in > billing_id (automatically checked with the foreign key). > > again, do I need a function for this? I think a table check constraint like: (bool_bill=false or billing_id is not null) will make billing_id not accept nulls when bool_bill is true.
Is there a way to do to define a default value when doing this?
something like...
select distinct
uid ....stuff...
e.thingy AS Ifnull(ulk,description,'UNKNOWN'),
... more stuff ...
As I want to do is have a default value of "UNKNOWN" instead of null.
-----Original Message-----
From: Stephan Szabo [mailto:sszabo@megazone23.bigpanda.com]
Sent: Thursday, May 16, 2002 6:17 PM
To: Lev Lvovsky
Cc: pgsql-general@postgresql.org
Subject: Re: [GENERAL] if !NULL ?
On Thu, 16 May 2002, Lev Lvovsky wrote:
>
> ok, so more odd-ball questions
>
> I have two columns in a table:
>
> bool_bill | billing_id
>
> one is a boolean that determines if we bill a customer, and the other one
> is NULL if we don't, and has a billing_id of that customer if we do. the
> billing_id uses a foreign key on the billing table to check that the
> billing_id exists.
>
> what I'd like to do is if bool_bill = y, then there has to be something in
> billing_id (automatically checked with the foreign key).
>
> again, do I need a function for this?
I think a table check constraint like:
(bool_bill=false or billing_id is not null)
will make billing_id not accept nulls when bool_bill is true.
---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly
On Fri, 17 May 2002, McCaffity, Ray (Contractor) wrote: > Is there a way to do to define a default value when doing this? > > something like... > > select distinct > uid ....stuff... > > e.thingy AS Ifnull(ulk,description,'UNKNOWN'), > > ... more stuff ... > > As I want to do is have a default value of "UNKNOWN" instead of null. Well, you can just set a default on the column, although in the case of foreign keys the default isn't necessarily automatically allowed unless it's NULL.
Try the COALESCE function
dev=> select version();
version
-------------------------------------------------------------
PostgreSQL 7.2.1 on i686-pc-linux-gnu, compiled by GCC 2.96
(1 row)
dev=> SELECT COALESCE(NULL,'UNKNOWN');
case
---------
UNKNOWN
(1 row)
dev=> SELECT COALESCE('Temp','UNKNOWN');
case
------
Temp
(1 row)
Darren Ferguson
On Fri, 17 May 2002, McCaffity, Ray (Contractor) wrote:
> Is there a way to do to define a default value when doing this?
>
> something like...
>
> select distinct
> uid ....stuff...
>
> e.thingy AS Ifnull(ulk,description,'UNKNOWN'),
>
> ... more stuff ...
>
> As I want to do is have a default value of "UNKNOWN" instead of null.
>
>
>
> -----Original Message-----
> From: Stephan Szabo [mailto:sszabo@megazone23.bigpanda.com]
> Sent: Thursday, May 16, 2002 6:17 PM
> To: Lev Lvovsky
> Cc: pgsql-general@postgresql.org
> Subject: Re: [GENERAL] if !NULL ?
>
>
> On Thu, 16 May 2002, Lev Lvovsky wrote:
>
> >
> > ok, so more odd-ball questions
> >
> > I have two columns in a table:
> >
> > bool_bill | billing_id
> >
> > one is a boolean that determines if we bill a customer, and the other one
> > is NULL if we don't, and has a billing_id of that customer if we do. the
> > billing_id uses a foreign key on the billing table to check that the
> > billing_id exists.
> >
> > what I'd like to do is if bool_bill = y, then there has to be something in
> > billing_id (automatically checked with the foreign key).
> >
> > again, do I need a function for this?
>
> I think a table check constraint like:
> (bool_bill=false or billing_id is not null)
> will make billing_id not accept nulls when bool_bill is true.
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org
>