Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: SQL question

Re: SQL question

From: Matthias Rogel <rogelREMOVE_at_THISweb.de>
Date: Fri, 19 Dec 2003 10:07:45 +0100
Message-ID: <3FE2BFE1.2050103@THISweb.de>


hallo ghassan,

great !!
it look likes this what exactly what I was looking for.

it actually is simple, but you have to see the trick. (and I didn't)

thank you

matthias

ghassan salem wrote:

> matthias wrote:
> 

>> this might be a simple question, but I can't get it
>> with analytics:
>>
>> SQL> desc test
>> Name Null? Typ
>> ----------------------------------------- --------
>> ----------------------------
>> PRIORITY NUMBER(38)
>> NUM1 NUMBER
>> NUM2 NUMBER
>> NUM3 NUMBER
>> NUM4 NUMBER
>>
>> SQL> select * from test order by priority asc;
>>
>> PRIORITY NUM1 NUM2 NUM3 NUM4
>> ---------- ---------- ---------- ---------- ----------
>> 1 2
>> 2 2,1 4
>> 3 4,3 5
>>
>>
>>
>> What I want to get within a query is
>> - the first not null NUM1 (or null if not present)
>> - the first not null NUM2 (or null if not present)
>> - the first not null NUM3 (or null if not present)
>> - the first not null NUM4 (or null if not present)
>>
>>
>> so the result should look like
>>
>> NUM1 NUM2 NUM3 NUM4
>> 2 NULL 4 5
>>
>> how to achieve this with analytic functions ?
>>
>> thank you
>>
>> matthias
> 
> try this
> select distinct first_value (num1) over (order by case when num1 is null 
> then 1 else 0 end, priority), same for num2, num3, and num4
> from test
Received on Fri Dec 19 2003 - 03:07:45 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US