返回顶部
首页 > 资讯 > 数据库 >怎么在sql语句中替换Not In方法
  • 259
分享到

怎么在sql语句中替换Not In方法

2024-04-02 19:04:59 259人浏览 泡泡鱼
摘要

本篇内容主要讲解“怎么在sql语句中替换Not In方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在sql语句中替换Not In方法”吧!目的: 替换N

本篇内容主要讲解“怎么在sql语句中替换Not In方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在sql语句中替换Not In方法”吧!

目的:

替换NOT IN 方法。

说明:

在单条SQL语句中,不使用储存过程,不使用临时表。使用存储过程和临时表不再本文的讨论范围中。

实现:

例:

表aa:结构

id                                       value   ……

1                                        a

2                                            b

3                                            c

4                                            d

5                                            e

6                                            f

---------------------------------------------------------------------------------------------

 

表bb:结构

id    ……

2

4

6

 

现在我要取表aa里的所有字段,条件是aa的id值不在bb的id值当中(not in)。也就是应该返回所有id为奇数的字段

 

使用NOT IN的SQL:

select * from aa where id not in(select id from bb)

就一条语句,简单明了,可惜效率不高,而且公司规范要求尽量不用NOT IN,害我费了好大事crying……

 

改造后的SQL:

select cc.id,cc.value from (select aa.*,bb.id as tempcolum from aa left join bb on aa.id=bb.id) as cc where cc.tempcolum is null

 

解释一下。在开始时候我最早想用内联表的方式,可是无论如何也每找到一个好的办法,干脆就是实现不了。(大家有好办法指教先。)

后来自己考虑了一下NOT IN的逻辑,A NOT IN B就是说A是主体,B起到的之不过是一个判断作用,我们可以先把所有符合条件的A记录全部查询出来而不管他是否属于B,然后再从这里剔除值同时属于B的部分。

Select aa.* from aa

但是仅仅这样是不够的,我们无法利用这个返回的结果集判断是否属于B并排除它,为此,我想到构造一个临时的列,这个列的值应该是在A的结果集范围内,所有在B中的值。而这个结果集的主体应该是所有满足先决条件的A,然后加上满足条件的B,而不满足条件的B值则不再考虑范围内,所以用了left join。

这一段是关键,不知道我阐述清楚了没有,没明白的继续看

于是就出来这一句。

select aa.*,bb.id as tempcolum from aa left join bb on aa.id=bb.id

没看明白上面的看结果集就明白了

id  value        tempcolum

---------------------------------------------

1     a                NULL

2     b                2

3     c                NULL

4     d                4

5     e                NULL

6     f                6

 

看到这个结果集我想大家都明白我的意思了吧。对了,我们就是要对这个结果集进行二次操作。

相信大家都看到了,生成的这个结果集包含了所有符合条件的表aa字段和bb的id,如果aa中的值在bb中,则tempcolum的值就不会为null,如果不在就是null,这样我们只需要从这个结果集里查询所有tempcolum值为null的就可以满足我们的要求了

所以最终的sql出来了

select cc.id,cc.value from (select aa.*,bb.id as tempcolum from aa left join bb on aa.id=bb.id) as cc where cc.tempcolum is null

我们只需要id和value两个字段,其他的就不要了。

结果

id  value

-------------------------

1     a        

3     c        

5           e        

 

ok,实现了,希望对大家有帮助。

到此,相信大家对“怎么在sql语句中替换Not In方法”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么在sql语句中替换Not In方法

本文链接: https://lsjlt.com/news/59702.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么在sql语句中替换Not In方法
    本篇内容主要讲解“怎么在sql语句中替换Not In方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在sql语句中替换Not In方法”吧!目的: 替换N...
    99+
    2024-04-02
  • SQL Server 替换 not in 的用法
    select * from T_A a (nolock) where a.xh not in (select xh from T_B) 方法1:效果甚微 select * from T_A ...
    99+
    2020-01-02
    SQL Server 替换 not in 的用法
  • SQL中有什么写法可以替代Like语句
    本篇内容介绍了“SQL中有什么写法可以替代Like语句”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • 在 MySQL 中使用 SELECT 语句替换空值有哪些不同的方法?
    有很多选项可用于使用 select 语句替换 NULL 值。您可以使用 CASE 语句或 IFNULL() 或 COALESCE()情况 1 - 使用 IFNULL()IFNULL( 的语法)如下 -SELECT IFNULL(y...
    99+
    2023-10-22
  • 在 SQL 语句中处理 NULL 值的方法
    在日常使用数据库时,你在意过NULL值么? 其实,NULL值在数据库中是一个很特殊且有趣的存在,下面我们一起来看看吧; 在查询数据库时,如果你想知道一个列(例如:用户注册年限 USE...
    99+
    2024-04-02
  • 怎么在MyBatis中执行SQL语句
    这期内容当中小编将会给大家带来有关怎么在MyBatis中执行SQL语句,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。基础组件我们要理解 Mybatis 的执行过程,就必须先了解 Mybatis 中都有哪一...
    99+
    2023-06-15
  • js中for...in语句怎么用
    这篇文章给大家分享的是有关js中for...in语句怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。说明index索引为字符串数字(注意非数字),不能直接进行几何操作。遍历顺序可能不是基于实际数组的内部顺序(...
    99+
    2023-06-20
  • sql中的替换函数怎么用
    sql中的替换函数用于在字符串中查找和替换文本,最常用的函数是replace(),语法为replace(string, search_string, replacement_string...
    99+
    2024-05-15
  • PGSQL怎么查询最近N天的数据及SQL语句实现替换字段内容的方法
    这篇“PGSQL怎么查询最近N天的数据及SQL语句实现替换字段内容的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收...
    99+
    2023-03-09
    pgsql sql
  • SQL Server在T-SQL语句中怎么使用变量
    这篇文章主要介绍了SQL Server在T-SQL语句中怎么使用变量的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SQL Server在T-SQL语句中怎么使用变量文章都会有所收获,下面我们...
    99+
    2023-06-30
  • sql语句在mysql中是怎么执行的
    这篇文章主要介绍了sql语句在mysql中是怎么执行的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、mysql架构分析下面是mysql的...
    99+
    2024-04-02
  • 在PL/SQL块中怎么执行select语句
    这篇文章主要介绍“在PL/SQL块中怎么执行select语句”,在日常操作中,相信很多人在在PL/SQL块中怎么执行select语句问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希...
    99+
    2024-04-02
  • mysql的select语句中in怎么用
    本篇内容介绍了“mysql的select语句中in怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2024-04-02
  • 怎么在JavaScript中使用replace()方法替换当前页面
    怎么在JavaScript中使用replace()方法替换当前页面?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。JavaScript的特点1.JavaScript主要用来向HT...
    99+
    2023-06-14
  • sql怎么替换表中所有数据
    SQL中可以使用UPDATE语句来替换表中的数据。以下是一个例子: UPDATE 表名 SET 列名1 = 新值1, 列名2 = 新...
    99+
    2024-04-09
    sql
  • MySQL中SQL语句怎么用
    这篇文章给大家分享的是有关MySQL中SQL语句怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。MySQL高级SQL语句use kgc;create table location...
    99+
    2023-06-20
  • sql中like语句怎么写
    sql 中的 like 语句用于根据模式匹配字符串,它使用 % 和 _ 通配符分别匹配零个或多个字符和单个字符。like 语句的语法为:select * from table_...
    99+
    2024-05-02
  • sql中like语句怎么用
    like 语句用于在 sql 中根据模式匹配字符或字符串,语法为:select column_name from table_name where column_na...
    99+
    2024-05-02
  • sql中ifelse语句怎么用
    sql 中,if-else 语句用于根据条件执行特定操作:if condition then statement1; 执行 statement1,如果 condition 为真。else...
    99+
    2024-05-02
  • sql中alter语句的使用方法是什么
    在SQL中,ALTER语句用于修改现有数据库表的结构,例如添加,删除或修改列,修改表的名称,以及修改表的约束等。 通用的ALTER语...
    99+
    2024-04-09
    sql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作