1.情景展示

  现在有一张表,需要将表中某字段的值不是以指定字符开头的列进行删除,如何实现?

2.问题分析

  错误方案一:同事想到的是:这种方式

  咱们来看一下,这个表总共有多少条数据

  本来表数据总共才4万多条数据,然而使用上面的查询方式,却查出了1多个亿的数据,真不知道这数据库是怎么想的。

  错误方案二:既然不行,我首先想到的是:使用not like实现,实践结果如下:

  再来看一下,使用like查询有多少条数据。

  总共的数据为:40059+3972=44031条 数据,比总表数44295要少,也就是说:使用not like查询会遗漏数据,具体什么原因想不通。

3.解决方案

  正确方案一:既然not like不行,我就想到用了使用exists()实现。

  先来查查符合条件的,使用exists()查询一下与使用like的语句是否一致。

  结果一致,再看一下,使用not exists()的查询结果

  算一下,与总数是否一致:40323+3972=44295,与结果一致,大功告成!

--查询表中不是以0.1.2.开头的数据(使用exists实现)
SELECT COUNT(1)
FROM BASE_ORG_INFO T
WHERE NOT EXISTS
(SELECT 1
FROM (SELECT ORGID FROM BASE_ORG_INFO WHERE ORGSEQ LIKE '0.1.2.%') S
WHERE S.ORGID = T.ORGID)

  如何删除这些数据?

--删除表中某字段不是以0.1.2.开头的数据(使用IN+EXISTS实现)
DELETE FROM BASE_ORG_INFO T2
WHERE T2.ORGID IN (SELECT T.ORGID
FROM BASE_ORG_INFO T
WHERE NOT EXISTS (SELECT 1
FROM (SELECT ORGID
FROM BASE_ORG_INFO
WHERE ORGSEQ LIKE '0.1.2.%') S
WHERE S.ORGID = T.ORGID))

  执行结果:

  方案二:直接使用not in()就可以搞定的事情,饶了一大圈!!!

DELETE FROM BASE_ORG_INFO T2
WHERE T2.ORGID IN
(SELECT T.ORGID
FROM BASE_ORG_INFO T
WHERE T.ORGID NOT IN
(SELECT ORGID FROM BASE_ORG_INFO WHERE ORGSEQ LIKE '0.1.2.%'))

  执行结果如下:

写在最后

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

相关推荐:

 

orcle not like不建议使用(not like所踩过的坑!)的更多相关文章

  1. 利用python 数据分析入门,详细教程,教小白快速入门

    这是一篇的数据的分析的典型案列,本人也是经历一次从无到有的过程,倍感珍惜,所以将其详细的记录下来,用来帮助后来者快速入门,,希望你能看到最后! 需求:对obo文件进行解析,输出为json字典格式 数据 ...

  2. 总结4点对学习Linux有帮助的建议(纯干货)

    学习需要足够的毅力和耐心 有些人把Linux运维看作一项冗长而枯燥的工作:有些人把linux运维看作一项得力的工具.如果是前者建议还是改变一下认识,不然不建议入门这行.毕竟linux运维工作是对人的毅 ...

  3. Expression构建DataTable to Entity 映射委托 sqlserver 数据库里面金额类型为什么不建议用float,实例告诉你为什么不能。 sql server 多行数据合并成一列 C# 字符串大写转小写,小写转大写,数字保留,其他除外 从0开始用U盘制作启动盘装Windows10系统(联想R720笔记本)并永久激活方法 纯CSS打造淘宝导航菜单栏 C# Winform

    Expression构建DataTable to Entity 映射委托   1 namespace Echofool.Utility.Common { 2 using System; 3 using ...

  4. 自学 JAVA 的几点建议

    微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题. 前言 许久不见,最近公众号多了很多在校的师弟师妹们.有很多同学都加了我微信问了一些诸如 [如何自学 Java ]的问题, ...

  5. Python核心编程:《8个实践性建议》

    前言 我们在用Python进行机器学习建模项目的时候,每个人都会有自己的一套项目文件管理的习惯,我自己也有一套方法,是自己曾经踩过的坑踩过的雷总结出来的,现在在这里分享一下给大家,因为很多伙伴是接触P ...

  6. Python核心编程:8个实践性建议

    前言 我们在用Python进行机器学习建模项目的时候,每个人都会有自己的一套项目文件管理的习惯,我自己也有一套方法,是自己曾经踩过的坑踩过的雷总结出来的,现在在这里分享一下给大家,因为很多伙伴是接触P ...

  7. 关于手机淘宝3.25bug我的一些思考与建议

    这两天被手淘ios版3.25bug刷屏了,影响还是挺大的,仅3.25日当天截止到下午5点在微博上的话题阅读量,已经突破8000万.给广大网友带来一次吃瓜盛宴.我们先简单回顾下这个bug的故事线: 我查 ...

  8. oracle 如何快速删除两表非关联数据(脏数据)?

      1.情景展示 现在有两者表,表1中的主键id字段和表2的index_id相对应.如何删除两表非关联数据? 2.解决方案 --第1步 delete from VIRTUAL_CARD t where ...

  9. 前端极易被误导的css选择器权重计算及css内联样式的妙用技巧

    记得大学时候,专业课的网页设计书籍里面讲过css选择器权重的计算:id是100,class是10,html标签是5等等,然后全部加起来的和进行比较... 我只想说:真是误人子弟,害人不浅! 最近,在前 ...

随机推荐

  1. 常见HTTP响应状态码

    分类 分类 分类描述 1** 信息,服务器收到请求,需要请求者继续执行操作 2** 成功,操作成功接收并处理 3** 重定向,需要进一步的操作以完成请求 4** 客户端错误,请求包含语法错误或无法完成 ...

  2. 使用Redis实现中英文自动补全功能详解

    1.Redis自动补全功能介绍: ​ Redis可以帮我们实现很多种功能,今天这里着重介绍的是Redis的自动补全功能的实现.我们使用有序集合,并score都为0,这样就按元素值的字典序排序.然后我们 ...

  3. Python数据分析Pandas的编程经验总结

    Pandas的api 参考手册DataFrame部分:https://pandas.pydata.org/pandas-docs/stable/reference/frame.html 数据处理部分: ...

  4. linux系统shell基础知识入门

    什么是shell shell就是我们常说的命令行程序,它是一个作为用户与Linux系统间接口的程序,它允许用户向操作系统输入要执行的命令.在Linux中安装多个shell是可行的,一般系统有默认的sh ...

  5. 开发--Deepin系统安装

    开发|Deepin系统安装 在18小时前,我刚刚萌生了一个将我的笔记本换成linux系统.在18小时后的现在,在我各种试错之后,笔记本已经开始跑起linux了.在科技的时代,只要是想法,都可以试一试. ...

  6. 2019-09-16 curl简单操作

    1.get请求 (使用file_get_contents()函数也可以实现get请求) //http_build_query() 构造一个url字符串 function http_get($url) ...

  7. 安装ceres-solver win10遇到Eigen安装的问题

    1.无法打开包括文件: “Eigen/Core”: 去github上下载最新的源码 2.  "The Eigen/Array header does no longer exist in E ...

  8. webpack详细介绍以及配置文件属性!

    1.webpack简单介绍 (1)webpack是一个用于实现前端模块化开发工具,可帮助我们自动打包编译成浏览器能够识别的代码 :同时支持commonjs规范 以及es6的import规范: 同时具备 ...

  9. es6中的arrowfunction

    es6新增箭头函数,主要解决了以下几点问题 函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象. 不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误. 不可以使用 ...

  10. recon-ng打开后显示No modules enabled/installed

    今天开始学习使用 recon-ng,进去后发现这么一行: 原因 在网上找了挺久,发现了这篇文章:Recon-ng v5 Tutorial, 原来是更新的原因,需要我们自行安装模块(旧版本是自带了许多模 ...