我想从一个类似于表得到“最上面的”数据:如何获得“最上面的”数据
A B C | Id 1 2 3 | 1 4 5 | 1 6 | 1
AC =列
1-6值(场未设置为空)
数据是根据它降序排列的ID序列
当我查询我想获得最新的写入的数据,在这个例子中,查询应该给我1,4和6单排:
a b c | Id 1 4 6 | 1
这是我做过尝试,但后来我得到正确的结果,但在不同的行:
select * from
(select id, a from dataTable where id=(select max(dt.dataRow) from dataTable dt where dt.id = 1)) a_query
full outer join
(select id, b from dataTable where id=(select max(dt.dataRow) from dataTable dt where dt.id = 1)) b_query
on a_query.id=b_query.id
full outer join
(select id, c from dataTable where id=(select max(dt.dataRow) from dataTable dt where dt.id = 1)) c_query
on nvl(a_query.id, b_query.id)=c_query.id
优选的Oracle SQL
感谢您的回答,但我仍然得到这个解决方案,我想散布这两行之间的数据过多行。 –
我不确定你的意思是“过多的行”或数据在两行之间传播?用更具体的例子来展示你的模式会很有帮助。 – LittleBobbyTables
如果你有多个“ID”,那么你将有超过1行,但它是有道理的......结果按ID – jazzytomato