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

Home -> Community -> Usenet -> c.d.o.misc -> Re: can I do this in sql

Re: can I do this in sql

From: Thomas Kyte <tkyte_at_us.oracle.com>
Date: Thu, 21 Oct 1999 14:17:24 -0400
Message-ID: <61cPOI2kkRIUsN52GcLluAjlmHt5@4ax.com>

>In article <7un9h9$4e2$1_at_nnrp1.deja.com>,
> Bob <bookouri_at_my-deja.com> wrote:
>> For some reason our database has race, hgt, wgt, hair color, eye color
>> in a "profile" table. I need a view that gives me all that
>information
>> on each individual on one row.
>>
>> I can select all the data i need with:
>> select id,
>> decode(off_prof.profile_type,'HEIGHT',off_prof.profile_code)height,
>> decode(off_prof.profile_type,'WEIGHT',off_prof.profile_code)weight,
>>
>decode(off_prof.profile_type,'HAIR_COLOR',off_prof.profile_code)Hair,
>>
>decode(off_prof.profile_type,'EYE_COLOR',off_prof.profile_code)Eyes,
>> decode(off_prof.profile_type,'RACE',off_prof.profile_code)Race
>>
>> from
>>
>> off_prof
>>
>> where
>>
>> (profile_type = 'HEIGHT'or profile_type = 'WEIGHT' or
>> profile_type = 'HAIR_COLOR'or profile_type = 'EYE_COLOR' or
>> profile_type = 'RACE')
>>

The following will transpose this for you:

select id,

max(decode(off_prof.profile_type,'HEIGHT',off_prof.profile_code,null))height,

max(decode(off_prof.profile_type,'WEIGHT',off_prof.profile_code,null))weight,

max(decode(off_prof.profile_type,'HAIR_COLOR',off_prof.profile_code,null))Hair,

max(decode(off_prof.profile_type,'EYE_COLOR',off_prof.profile_code,null))Eyes,

       max(decode(off_prof.profile_type,'RACE',off_prof.profile_code,null))Race   from off_prof
 group by id
/

be careful if you use the join below as if you are missing any of the attributes -- NO row for that user would be returned.

>> this give me a row for each profile type for each individual, what I
>> need to see is one row per individual with all the identifiers.
>>
>> any suggestions would be appreciated
>>
>> Sent via Deja.com http://www.deja.com/
>> Before you buy.
>>
>
>Try this:
>
>select a.id, a.height, b.weight, c.hair_color, d.eye_color, e.race
>from off_prof a, off_prof b, off_prof c, off_prof d, off_prof e
>where a.id = b.id and b.id = c.id and c.id = d.id and d.id = e.id and
> a.profile_type = 'HEIGHT' and b.profile_type = 'WEIGHT' and
> c.profile_type = 'HAIR_COLOR' and d.profile_type = 'EYE_COLOR' and
> e.profile_type = 'RACE'
>
>Hope this helps.
>
>Yar
>
>
>Sent via Deja.com http://www.deja.com/
>Before you buy.

--
See http://osi.oracle.com/~tkyte/ for my columns 'Digging-in to Oracle8i'... Current article is "Part I of V, Autonomous Transactions" updated June 21'st  

Thomas Kyte                   tkyte_at_us.oracle.com
Oracle Service Industries     Reston, VA   USA

Opinions are mine and do not necessarily reflect those of Oracle Corporation Received on Thu Oct 21 1999 - 13:17:24 CDT

Original text of this message

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