Re: Interesting SQL Statement Problem...

From: trevor burkin <trevor.2.burkin_at_bt.com>
Date: 2000/08/04
Message-ID: <398ACF7D.F879DE90_at_bt.com>#1/1


Try this :-

select * from
(SELECT min(T1.col2) t1col2
  FROM tab1 T1
WHERE T1.col1 = 1) q1,
(select min(T2.col2) t2col2
  FROM tab1 T2
WHERE T2.col1 = 2) q2

Bigfoot wrote:

> Select MAX(DECODE(col1,1,col2)),MAX(DECODE(col1,col2,2),...
> FROM t1
>
> Marc Nichol wrote in message
> <397a8bd1.4117120_at_news1.on.sympatico.ca>...
> Everyone
>
> Assume the following table exists:
>
> CREATE TABLE tab1
> (
> col1 NUMBER PRIMARY KEY,
> col2 VARCHAR2(40) NOT NULL
> );
>
> And assume the table contains the following data:
>
> COL1 COL2
>
> 1 "ONE"
> 2 "TWO"
> 4 "FOUR"
>
> I would like to select multiple records from the same table using only
> one select statement and returning only one row by doing something
> similar to this:
>
> SELECT T1.col2,
> T2.col2
> FROM tab1 T1,
> tab1 T2
> WHERE T1.col1 = 1
> AND T2.col1 = 2;
>
> The above query will successfully return only one row ("ONE" and
> "TWO") since both conditions of the WHERE clause evaluate to TRUE.
> However, my problem is that I would still like to return one row even
> if only one part of the WHERE clause is TRUE.
>
> For example, the following select statement returns no rows because
> "T2.col1 = 3" evaluates to FALSE:
>
> SELECT T1.col2,
> T2.col2
> FROM tab1 T1,
> tab1 T2
> WHERE T1.col1 = 1
> AND T2.col1 = 3;
>
> What I am trying to return is one row with "ONE" and NULL. Any
> thoughts would be greatly appreciated.
>
> Thanks!
Received on Fri Aug 04 2000 - 00:00:00 CEST

Original text of this message