`

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检查文件是否存在

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

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

    if exists 判断对象是否存在

    if exists 判断对象是否存在,注入建表建库,以及试图存储过程,还有其他的

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

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

    SQL之EXISTS

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

    in和exists的区别

    “exists”和“in”是Oracle中,都是查询某集合的值是否存在在另一个集合,但对不同的数据有不同的用法,主要是在效率问题上存在很大的差别,以下有两个简单例子,以说明 “exists”和“in”的效率问题。

    浅析SQL中WHERE EXISTS子查询.pdf

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

    sql exists和not exists用法

    使用EXISTS(或NOT EXISTS)关键字引入一个子查询时,子查询实际上不产生任何数据;它只返回TRUE或FALS值。 指定一个子查询,检测行的存在。 如果子查询包含行,则返回 TRUE IN效率要差(返回子查询)

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

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

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

    主要介绍了php通过function_exists检测函数是否存在的方法,实例分析了php使用function_exists检测函数是否存在及调用的相关技巧,非常具有实用价值,需要的朋友可以参考下

    oracle判断表是否存在.

    oracle 判断表 是否存在.亲自手写可用才上传的。

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

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

    Oracle删除表、字段之前判断表、字段是否存在

    若在程序中执行该语句则会报异常,这就需要我们在删除表前先判断该表是否存在,若存在则删除. DECLARE num NUMBER; BEGIN SELECT COUNT(1) INTO num FROM USER_TABLES WHERE TABLE_NAME = UPPER('tableName'); IF num...

    exists-file:检查文件是否存在。 一个不存在的fs.exists实现

    还请始终牢记: 在调用fs.open()之前,不应使用fs.exists()检查文件是否存在。 这样做会引入竞争条件,因为其他进程可能会在两次调用之间更改文件的状态。 而是,用户代码应直接调用fs.open()并处理文件不...

    path-exists:检查路径是否存在

    特别是,在打开文件之前检查文件是否存在是一种反模式,使您容易受到竞争状况的影响:另一个过程可能会在调用fs.exists()和fs.open()之间删除该文件。 只需打开文件,然后在不存在时处理错误即可。 安装 $ npm ...

    php判断类是否存在函数class_exists用法分析

    主要介绍了php判断类是否存在函数class_exists用法,实例分析了PHP针对类是否存在进行判断的应用,对于自动加载类以及类实例化之前的存在判断来说都非常具有实用价值,需要的朋友可以参考下

    image-exists:检查图像是否存在

    形象存在检查图像是否存在安装npm install image-exists 用法 var imageExists = require ( 'image-exists' ) ;var src = "http://example.com/image.png" ;imageExists ( src , function ( exists ) { if ( exists ...

    Laravel开发-laravel-route-key-exists

    Laravel开发-laravel-route-key-exists 用于检查自定义路由密钥是否存在的Laravel验证规则。

Global site tag (gtag.js) - Google Analytics