GaussDB(DWS)迁移实践丨row_number输出结果不一致
💡
原文中文,约1800字,阅读约需5分钟。
📝
内容提要
本文介绍了GaussDB(DWS)迁移Oracle兼容时,由于PARTITION BY列+ORDER BY列组合不唯一导致row_number()函数结果集不稳定的问题及解决方案。作者通过案例展示了问题的定位和分析方法。
🎯
关键要点
- 迁移前后结果集row_number字段值不一致,DWS上运行结果不稳定。
- 问题主要由于PARTITION BY列和ORDER BY列组合不唯一,导致row_number()函数结果集不稳定。
- 解决方案:使用rank()函数代替row_number(),或增加ORDER BY列以确保记录唯一性。
- 案例展示了某客户在Oracle迁移前后SQL结果集的稳定性问题。
- 通过执行特定SQL语句分析,发现rank()值一致,且PARTITION BY列和ORDER BY列的值相同。
➡️