当前位置:神舟问>百科知识>SQL中EXISTS怎么用

SQL中EXISTS怎么用

2024-04-15 01:13:49 编辑:join 浏览量:543

SQL中EXISTS怎么用

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859语法 EXISTS subquery  参数subquery是一个受限临的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字)。有关更多信息,请参见 Select中有关360问答子查询的讨论。  结果类顾矿劳歌品皇才阻越后科型 Boolean  结果值 如果子查询包含行,则返回 TRUE。  说明  EXISTS(包括 NOT EXISTS )子句的返回值是一个BOOL值。 EXI刘甲垂兵STS内部有一个子查询语句(SELECT ... FROM...), 我将其称为车根陆前EXIST的内查询语句。其内查询语句返回一个结果集。 EXISTS子句根据其内查询语句的结果集空或者非空,返回一个布尔值。 一种通俗的可以理解为:将外查询表的每一行,代入内查询作为检验,如果内查询返回的结果取非空值,则EXISTS子句返回TRUE,这一行行可作为外其是陈难若哪面易春轻科查询的结果行,否则不能作为结果。  Exists是子查询的一种条件形式,通过判断居铁Exists的选择表达式(括号内的部分)的结果,如果存在一行或多行结果记录,则Exists整个子查风次询结果为真,否则为假。由于我们采用Exists来实现子查询,只需要关心是否存跟参满减直运卷国八法在满足条件的记录,所以选择表达式的选择配次列表采用*来实现验随,当然,你也可以在选择列表指明具体的某些列,但这些列将在整个搜索过程中被忽略。  Exi手利入参sts实例  SQL 代码   复制 select  Resc_id  from  ***.res_Coachwhere  EXISTS (select * from  Res_Coach  where  Resc_id  is  n第一不根细制ull)  查询原理:遍历***.res_Coach每一条,同时处理where条件(EXISTS (sel角措严脸会十群来情ect * from Res_缺磁外杀当数业还延Coach where Resc_id=0裂调治观) 判断结果为t不为裂rue或者false),为true时拿出该条,苏深穿段初关适化记看false时,放弃该条记录。  SQL 代码   复制 -- 1、  where条件中的子查询和主查询没关系 select  Resc_id from  ***.res_Coach where  EXISTS (select  Rese_id  from  ***.res_Excellent  where  Rese_id  Is  null ) -- 2、  where条件中得子查询和主查询有关系 select  Resc_id from  ***.res_Coach where  EXISTS (select  Resc_id  from  ***.res_Coach  where  Resc_id  Is  null )  实例备注:不管where条件中得子查询和主查询有没有关系,遍历主查询中得每一条时,判断where条件,exists结果为真,where条件返回true,拿出该条记录,where条件返回false, 不返回该记录。  Exists 和 In 的选择  如果查询的两个表大小相当,那么用in和exists差别不大。如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in

标签:SQL,EXISTS

版权声明:文章由 神舟问 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.shenzhouwen.com/article/326535.html
热门文章