Oracle SQL查询解析
我有一张这样的桌子:Oracle SQL查询解析,sql,oracle,Sql,Oracle,我有一张这样的桌子: eno name loc flag 1 penchal pune old 2 penchal mumbai current 3 srinivas hyd curent 4 mahesh chenai current Name oldlocation newlocation penchal pune mumm
eno name loc flag
1 penchal pune old
2 penchal mumbai current
3 srinivas hyd curent
4 mahesh chenai current
Name oldlocation newlocation
penchal pune mummbai
srinivas null hyd
mahesh null chennai
我想这样说:
eno name loc flag
1 penchal pune old
2 penchal mumbai current
3 srinivas hyd curent
4 mahesh chenai current
Name oldlocation newlocation
penchal pune mummbai
srinivas null hyd
mahesh null chennai
您能帮助我如何在oracle sql中编写此场景的查询吗寻找回复这可能会解决问题,但您能否解释一下查询的作用。也许这对未来的提问者会有所帮助。max的使用是因为它取最大值,并根据需要显示在用户的同一行中,decode将像case语句一样工作,因此这与John Woo的答案相同,但使用的是
decode
而不是case
。
SELECT Name,
MAX(CASE WHEN flag = 'old' THEN loc ELSE NULL END) AS oldlocation,
MAX(CASE WHEN flag = 'current' THEN loc ELSE NULL END) AS newlocation
FROM tableName
GROUP BY Name