if !NULL ?

Started by Lev Lvovskyalmost 24 years ago5 messagesgeneral
Jump to latest
#1Lev Lvovsky
lists1@sonous.com

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

#2Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Lev Lvovsky (#1)
Re: 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.

#3McCaffity, Ray (Contractor)
McCaffityR@epg.lewis.army.mil
In reply to: Stephan Szabo (#2)
Re: if !NULL ?

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

#4Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: McCaffity, Ray (Contractor) (#3)
Re: if !NULL ?

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.

#5Darren Ferguson
darren@crystalballinc.com
In reply to: McCaffity, Ray (Contractor) (#3)
Re: if !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:

Show quoted text

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