yes and no ... the ANSI/ISO SQL standard offers the three operators you need: "IS TRUE", "IS FALSE", and "IS UNKNOWN". But as far as I know, no vendor has implemented these. Note the power of these operators; they accept a Boolean argument. The "IS NULL" becomes very clumsy as soon as multiple predicates are involved. One nice Oracle function (that has been around for quite a while, but was undocumented until 10g) is the LNNVL function. But again, it has many limitations. SQL> select 'Bingo!' as result from dual 2 where lnnvl(1=1); no rows selected SQL> c/1/2 2* where lnnvl(2=1) SQL> / RESULT ------ Bingo! SQL> c/=1/ is null/ 2* where lnnvl(2 is null) SQL> / RESULT ------ Bingo! Kind regards, Lex. --------------------------------------------- visit my website at http://www.naturaljoin.nl --------------------------------------------- -----Original Message----- From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx]On Behalf Of Nuno Souto Sent: Saturday, May 29, 2004 16:58 To: oracle-l@xxxxxxxxxxxxx Subject: Re: Useful Oracle books - C.J. Date theory vs. practicality Always very hard to handle three-valued logic without some formal construct or syntax that can cover all options. Which brings me to my next question, if you'd be so kind: Is there an agreed syntax (or language) anywhere that can hold against three-valued logic? As in: commercially available? Os is three-valued logic condemned to forever be the fly in the ointment (so to speak) of SQL?
BEGIN:VCARD VERSION:2.1 N:de Haan;Lex FN:Lex de Haan ORG:Natural Join B.V. TEL;WORK;VOICE:+31.30.2515022 TEL;HOME;VOICE:+31.30.2518795 TEL;CELL;VOICE:+31.62.2955714 TEL;WORK;FAX:+31.30.2523366 ADR;WORK:;;Pieter Breughelstraat 10;Utrecht;;3583 SK;Netherlands LABEL;WORK;ENCODING=QUOTED-PRINTABLE:Pieter Breughelstraat 10=0D=0AUtrecht 3583 SK=0D=0ANetherlands URL;WORK:http://www.naturaljoin.nl EMAIL;PREF;INTERNET:lex.de.haan@xxxxxxxxxxxxxx REV:20040224T160439Z END:VCARD