`

exists 是否存在

 
阅读更多

链接:http://www.cnblogs.com/netserver/archive/2008/12/25/1362615.html

1.

EXISTS(包括 NOT EXISTS )子句的返回值是一个BOOL值。 EXISTS内部有一个子查询语句(SELECT ... FROM...), 我将其称为EXIST的内查询语句。其内查询语句返回一个结果集。 EXISTS子句根据其内查询语句的结果集空或者非空,返回一个布尔值。
一种通俗的可以理解为:将外查询表的每一行,代入内查询作为检验,如果内查询返回的结果取非空值,则EXISTS子句返回TRUE,这一行行可作为外查询的结果行,否则不能作为结果。

 

 

2.

EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。EXISTS 指定一个子查询,检测 行 的存在。

 

3.

EXISTS与IN的使用效率的问题,通常情况下采用exists要比in效率高,因为IN不走索引,但要看实际情况具体使用:
IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况。

 

4.sql语句:

select *
  from tb_bgt_req_reduce_log
 where id =
       (select id
          from tb_bgt_req_amount
         where item_req_id =
               (select req_id from tb_quota_info where quota_id =58743))
   and canceldate is null
   and exists (
     select *  from tb_plan_info a where a.src_plan_id=587867 and is_order=1
   )

 

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

delete from tb_pay_info p
 where exists (select 1
          from tb_salary_record s
         where s.pay_id = p.pay_id
           and p.annual = s.annual
           and to_date(extract(year from STAFF_DATE) || '-' ||
                       extract(month from STAFF_DATE) || '-' ||
                       extract(day from STAFF_DATE),
                       'yyyy-mm-dd') =
               to_date('2017-07-28', 'yyyy-mm-dd')
           and ptype = 1
           and rk_type = 1)
   and annual = 2017

分享到:
评论

相关推荐

    Delphi FileExists检查文件是否存在

    在Delphi编程环境中,`FileExists`函数是一个非常实用的工具,它用于检查指定路径的文件是否实际存在于文件系统中。这个函数属于`System.IOUtils`单元,因此在使用前需要确保该单元已经被导入到你的工程中。下面将...

    VB6 FileExists判断文件是否存在.rar

    VB6 判断文件是否存在,使用VB内置的函数FileExists来实现,可以说实现方法简单,直接调用函数(文件路径)即可,至于返回的结果,这里有两种形式,一种是以MsgBox的方式弹出窗口告之,另一种是返回布尔值,True或...

    if exists 判断对象是否存在

    在 SQL 语言中,`IF EXISTS` 是一个非常有用的条件语句,它可以帮助我们检查数据库中特定对象(如数据库、表、存储过程等)是否存在,从而根据检查结果执行相应的操作。这对于自动化脚本编写尤其重要,因为它可以...

    sql exists和not exists用法

    在SQL查询中,`EXISTS`与`NOT EXISTS`是非常实用的子查询操作符,它们主要用于检测是否存在满足一定条件的数据行。相较于`IN`、`NOT IN`等操作,`EXISTS`与`NOT EXISTS`具有更高的效率,尤其是在处理大型数据集时。 ...

    EXISTS_和_NOT_EXISTS

    它们主要用于子查询,帮助我们检查主查询的结果集是否存在匹配的子查询结果。让我们深入探讨这两个概念及其在实际应用中的用法。 1. EXISTS 子句: `EXISTS` 子句用于测试子查询是否返回至少一行数据。如果子查询...

    Delphi FileExists 判断文件是否存在的简单例子.rar

    Delphi FileExists 判断文件是否存在的简单例子  完整的用法代码:  begin  if (Edit1.Text<>'') then  begin  if FileExists(Trim(Edit1.Text)) then  showMessage('存在')  else  ShowMessage('不存在'); ...

    in和exists的区别

    在Oracle数据库中,"IN"和"EXISTS"都是用于查询某个集合的元素是否存在于另一个集合中的关键字。然而,它们在处理数据时的效率和适用场景有所不同,这主要取决于涉及的数据量以及表之间的关联。 首先,让我们来看看...

    sqlserver中判断表或临时表是否存在

    SQL Server 中判断表或临时表是否存在 在 SQL Server 中判断表或临时表是否存在是非常重要的操作,以下将详细介绍如何判断表或临时表是否存在。 判断数据表是否存在 判断数据表是否存在可以使用两种方法。 方法...

    exists SQL用法详解、exists和not exists的常用示例

    `IN`通常用于获取特定值列表内的记录,而`EXISTS`则可以用于检查记录是否存在。 让我们通过几个示例来理解这些概念: **示例1**: ```sql SELECT * FROM a WHERE EXISTS (SELECT 1 FROM b WHERE a_id = a.id) ``` ...

    function_exists函数详解

    我们可以使用 `function_exists()` 来检查这些函数是否存在: ```php // 检查 add 函数是否存在 if (function_exists('add')) { echo "Add function exists."; } else { echo "Add function does not exist."; } ...

    SQL之EXISTS

    exists是用来判断是否存在的,当exists(查询)中的查询存在结果时则返回真,否则返回假。not exists则相反 它所在的查询属于相关子查询,即子查询的查询条件依赖于外层父查询的某个属性值,处理过程一般为: 取外层...

    oracle数据库关于exists使用

    - **外层Exists**: `NOT EXISTS(SELECT * FROM course ...)` 用来判断是否存在没有被该学生选修的课程。如果存在这样的课程,则外层 `NOT EXISTS` 返回真,即该学生没有选修所有课程。 **简化理解**: 另一种更直观...

    sql server2005 exists使用方法

    这个例子展示了如何使用嵌套的 `EXISTS` 子句来检查多个表之间是否存在满足特定条件的记录。 #### 三、避免复杂的 EXISTS 虽然 `EXISTS` 非常强大,但在某些情况下,过多的嵌套或复杂的 `EXISTS` 结构可能会降低...

    oracle中exists_和in的效率问题详解

    EXISTS 主要用于判断子查询是否存在记录,如果子查询返回至少一条记录,THEN 语句将被执行。EXISTS 的语法结构为:`SELECT * FROM table_name WHERE EXISTS (subquery)` 在使用 EXISTS 时,需要注意以下几点: 1. ...

    exists用法说明.doc

    在SQL查询中,`EXISTS`子句是一个非常重要的存在性测试工具,它用于检查子查询是否返回至少一行数据。这个关键字通常与`WHERE`子句一起使用,以过滤出满足特定条件的记录。让我们深入探讨`EXISTS`及其反义词`NOT ...

    浅析SQL中WHERE EXISTS子查询.pdf

    WHERE EXISTS子查询的语法格式为:EXISTS 代表存在量词,首先扫描外层查询的每一个元组,若对应内层查询非空,则外层查询的WHERE后面条件为真,则取出外层相关元组;否则若对应内层查询为空,外层查询条件为假,则不...

    搞懂mysql的exists

    2. 当`IN`的子查询返回大量数据时,`EXISTS`可能更高效,因为它只需检查是否存在匹配,而无需构建完整的列表。 四、`EXISTS`与`JOIN`的比较 1. `JOIN`用于连接两个或多个表,基于它们之间的关联条件。例如,`INNER ...

    sql中exists的用法

    exists 是 SQL 中最常用的子查询操作符之一,用于检测子查询是否返回至少一个记录。exists 的使用场景非常广泛,包括对多表之间的关系进行查询、检测记录的存在性等。 在 SQL 中,exists 的基本语法为: ```sql ...

    php通过function_exists检测函数是否存在的方法

    例如,假设有一个项目需要根据用户的权限来决定是否显示特定的按钮,这可以通过function_exists来检查是否存在特定的权限验证函数,从而决定是否渲染按钮的HTML代码: ```php if (function_exists('...

    sql in,exists,not in,not exists区别

    IN 是一种条件判断运算符,用于判断某个值是否存在于一个列表中。其基本语法为: `<Exp> IN (, , , ...)` 其中,`<Exp>` 是要判断的值,`<Exp1>`, `<Exp2>`, `<Exp3>` 是列表中的值。如果 `<Exp>` 在列表中,则...

Global site tag (gtag.js) - Google Analytics