Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SQL查询解析_Sql_Oracle - Fatal编程技术网

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