oracle 列转行

表字段:cid(外键), imgId(主键),width,height,url,status.

每个外键可对应三条记录,现在在查询时,要根据cid获取到一条记录,这样就涉及到了列传行的问题。大概写法如下:不知各位仁兄可有更好的写法?忘不吝赐教!

select * from
    (select nip.url as p1 from nong_image_properties nip where nip.resourceid='22') n1,
    (select nip.url as p2 from nong_image_properties nip where nip.resourceid='23') n2,
    (select nip.url as p3 from nong_image_properties nip where nip.resourceid='24')n3


2.使用函数查询:(昨日面试遇到一个这样的sql题,一时想不起来这种写法了,故重新在sqls——plus里调试了一下,记录与此,与列行互转无关)
select avg(case when t.salary>=3000 and t.sex=0 then salary end)a,
sum(case when t.salary<=3000 and t.sex=0 then salary end) b,
count(case when t.salary>=3000 and t.sex=1 then salary end) b
from emp t
  

你可能感兴趣的:(oracle,sql)