ROW_NUMBER Oracle-奇怪的行为(添加行)

问题描述 投票:0回答:1

---和--2之间的嵌套查询返回单行。但是完整查询返回多行。这怎么可能?

这对我来说没有任何意义,我想我在这里丢失了一些东西。

 select                                                                                                             

 distinct                                                                                                           


 ROW_NUMBER() OVER (ORDER BY xx."accountCreateDate" DESC) as "rowNumber",
 xx.* 


 from 
 (
     ---- 1 ----
         select 
         some stuff 
         from                                                                                                               
       t1                                     
       left join t2 a on t1.id = t2.id 


         ---- 2 ----
 ) xx  ;
sql oracle row-number
1个回答
1
投票

select不可能。但是,您正在使用select distinct。子查询实际上并没有返回一行。它正在返回多行,所有行都具有相同的值。

当添加row_number()时,添加唯一列。瞧!出现更多行。在row_number()之前先评估select distinct

[Here是一个简单的db <>小提琴,说明了这种现象。

© www.soinside.com 2019 - 2024. All rights reserved.