• Oracle排序BUG


          在今天项目开发中,遇到一个奇怪的问题,运用Oracle自身排序,然后将排序结果进行分页展示到前台时,发现数据有重复的现象。

          这是数据表需要排序的全部结果,执行脚本:select * from ajb where ajlx='刑事案件' order by ajlx asc

          结果展示为:

    获取结果集的前13页,sql脚本如下:

        select * from (select * from ajb where ajlx='刑事案件' order by ajlx asc) where rownum<=13

    结果截图:

    显然,这和总结果前13条内容不对应。

        为什么会出现上面的问题?大家想想,这种情况还会发生重复的可能。原来是因为Oracle的弱排序,尤其对于汉字,将排序结果放在一张表中,再从该表中取数据,很容易出现问题。因为若排序(非唯一排序),所以查询出的表不再具有排序功能,所以从该表中取数据就会不对。

        那么,遇到这中问题怎么解决呢?因为排序是若排序,所以有必要加一个强排序选项,将本文红背景脚本改为:select * from ajb where ajlx='刑事案件' order by ajlx,xh asc即可。

  • 相关阅读:
    tips
    数学建模-预测模型优缺(搬运)
    数学建模-灰色预测模型GM(1,1)_MATLAB
    Floyd算法_MATLAB
    第二章 运算方法与运算器(浮点数的加减法,IEEE754标准32/64浮点规格化数)
    面向对象
    for循环
    if---else
    airflow的web任务管理
    airflow原理
  • 原文地址:https://www.cnblogs.com/kinger906/p/3461546.html
Copyright © 2020-2023  润新知