• oracle 使用length()函数需要注意的坑!


    1.情景展示

      筛选出指定字段字符长度既不等于18也不等于15的数据。   

    2.原因分析

      第一步:按字符串度进行分组统计;

      第二步:筛选数据。

      你会发现,只将length=17统计了出来,长度不存在的数据没有统计出来。

    3.解决方案

      统计长度为0的数据,统计结果为0;

      因为id_card字段为空的行记录,调用length()后,返回的结果也是null。

      所以,只能用is null 来实现。

      所以,最终结果为:

    --对id_card字段长度既不等于18又不等于15的数据进行统计
    SELECT SUM(AAA)
      FROM (SELECT COUNT(1) AAA
              FROM VIRTUAL_CARD
             WHERE LENGTH(ID_CARD) <> 18
               AND LENGTH(ID_CARD) <> 15
            UNION ALL
            SELECT COUNT(1) AAA
              FROM VIRTUAL_CARD
             WHERE LENGTH(ID_CARD) IS NULL)
    

    写在最后

      哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

     相关推荐:

  • 相关阅读:
    2019暑假集训 windy数
    2019暑假集训 数字游戏
    2019暑假集训 周年纪念晚会
    2019暑假集训 加分二叉树
    0013-求圆柱体体积
    0012-求滑动距离
    0011-绝对值函数
    0010-温度转换
    0009-乘法问题
    0008-三位数倒序问题
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/10978621.html
Copyright © 2020-2023  润新知