You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-user@db.apache.org by "Biene_Majo@yahoo.de" <Bi...@yahoo.de> on 2012/05/07 14:14:32 UTC
Null values with conditions
Hi,
i have a table with 4 columns:
A1
A2
B1
B2
i now need something like this (in relation to null values):
(A1 AND A2) OR (B1 AND B2)
So that if A1 is not null A2 must not be null and the other way around (so
if A2 is not null A1 is not allowed to be null).
The same for B1 and B2.
And at least one of the 2 pairs must not be null.
Can someone tell me if this is possible or how?
Thanks for any suggestions / answers
Biene Majo
Re: Null values with conditions
Posted by "Biene_Majo@yahoo.de" <Bi...@yahoo.de>.
Thanks for the answers!
You are also right José, with the answer of Rick it allows both pairs to
be null. Will make it as you suggested.
But nonetheless thank you both, really appreciated.
Greetings
Biene Maja
Am 07.05.2012, 15:03 Uhr, schrieb José Ventura <st...@gmail.com>:
> I think the suggested answer will allow all values to be null. If at
> least
> one pair must not be null, we can add the following:
>
> check
> (
> (
> ( a1 is not null and a2 is not null )
> or
> ( a1 is null and a2 is null )
> )
> and
> (
> ( b1 is not null and b2 is not null )
> or
> ( b1 is null and b2 is null )
> )
> *and ( a1 is not null or b1 is not null ) *
> )
>
> (we can test only a1/b1 here because the "other member of the pair" has
> already been tested earlier).
>
> On Mon, May 7, 2012 at 9:36 AM, Rick Hillegas
> <ri...@oracle.com>wrote:
>
>> On 5/7/12 5:14 AM, Biene_Majo@yahoo.de wrote:
>>
>>> Hi,
>>>
>>> i have a table with 4 columns:
>>> A1
>>> A2
>>> B1
>>> B2
>>> i now need something like this (in relation to null values):
>>> (A1 AND A2) OR (B1 AND B2)
>>>
>>> So that if A1 is not null A2 must not be null and the other way around
>>> (so if A2 is not null A1 is not allowed to be null).
>>> The same for B1 and B2.
>>> And at least one of the 2 pairs must not be null.
>>>
>>> Can someone tell me if this is possible or how?
>>>
>>>
>>> Thanks for any suggestions / answers
>>>
>>> Biene Majo
>>>
>>> Hi Biene,
>>
>> What you describe sounds like a CHECK constraint to me. Not sure that I
>> understand the exact condition you're trying to catch, but something
>> like
>> the following might work for you:
>>
>> create table t
>> (
>> a1 int,
>> a2 int,
>> b1 int,
>> b2 int,
>>
>> check
>> (
>> (
>> ( a1 is not null and a2 is not null )
>> or
>> ( a1 is null and a2 is null )
>> )
>> and
>> (
>> ( b1 is not null and b2 is not null )
>> or
>> ( b1 is null and b2 is null )
>> )
>> )
>> );
>>
>> Hope this helps,
>> -Rick
>>
--
Erstellt mit Operas revolutionärem E-Mail-Modul: http://www.opera.com/mail/
Re: Null values with conditions
Posted by José Ventura <st...@gmail.com>.
I think the suggested answer will allow all values to be null. If at least
one pair must not be null, we can add the following:
check
(
(
( a1 is not null and a2 is not null )
or
( a1 is null and a2 is null )
)
and
(
( b1 is not null and b2 is not null )
or
( b1 is null and b2 is null )
)
*and ( a1 is not null or b1 is not null ) *
)
(we can test only a1/b1 here because the "other member of the pair" has
already been tested earlier).
On Mon, May 7, 2012 at 9:36 AM, Rick Hillegas <ri...@oracle.com>wrote:
> On 5/7/12 5:14 AM, Biene_Majo@yahoo.de wrote:
>
>> Hi,
>>
>> i have a table with 4 columns:
>> A1
>> A2
>> B1
>> B2
>> i now need something like this (in relation to null values):
>> (A1 AND A2) OR (B1 AND B2)
>>
>> So that if A1 is not null A2 must not be null and the other way around
>> (so if A2 is not null A1 is not allowed to be null).
>> The same for B1 and B2.
>> And at least one of the 2 pairs must not be null.
>>
>> Can someone tell me if this is possible or how?
>>
>>
>> Thanks for any suggestions / answers
>>
>> Biene Majo
>>
>> Hi Biene,
>
> What you describe sounds like a CHECK constraint to me. Not sure that I
> understand the exact condition you're trying to catch, but something like
> the following might work for you:
>
> create table t
> (
> a1 int,
> a2 int,
> b1 int,
> b2 int,
>
> check
> (
> (
> ( a1 is not null and a2 is not null )
> or
> ( a1 is null and a2 is null )
> )
> and
> (
> ( b1 is not null and b2 is not null )
> or
> ( b1 is null and b2 is null )
> )
> )
> );
>
> Hope this helps,
> -Rick
>
Re: Null values with conditions
Posted by Rick Hillegas <ri...@oracle.com>.
On 5/7/12 5:14 AM, Biene_Majo@yahoo.de wrote:
> Hi,
>
> i have a table with 4 columns:
> A1
> A2
> B1
> B2
> i now need something like this (in relation to null values):
> (A1 AND A2) OR (B1 AND B2)
>
> So that if A1 is not null A2 must not be null and the other way around
> (so if A2 is not null A1 is not allowed to be null).
> The same for B1 and B2.
> And at least one of the 2 pairs must not be null.
>
> Can someone tell me if this is possible or how?
>
>
> Thanks for any suggestions / answers
>
> Biene Majo
>
Hi Biene,
What you describe sounds like a CHECK constraint to me. Not sure that I
understand the exact condition you're trying to catch, but something
like the following might work for you:
create table t
(
a1 int,
a2 int,
b1 int,
b2 int,
check
(
(
( a1 is not null and a2 is not null )
or
( a1 is null and a2 is null )
)
and
(
( b1 is not null and b2 is not null )
or
( b1 is null and b2 is null )
)
)
);
Hope this helps,
-Rick