SQL 嵌套查询 —比较 很有用「建议收藏」

SQL 嵌套查询 —比较 很有用「建议收藏」select  avg(datediff(year,Birthday,getdate()))asaveAge,Cofrom (selectbirthday,Cofromv_temp1whereBirthday!=”)asco groupbyco

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

百思不得其解的一个小问题,用嵌套查询轻松搞定 呵呵以下最简单代码,

select   avg(datediff(year,Birthday,getdate()) )as aveAge ,Co from
 (select birthday, Co from v_temp1 where Birthday !=”) as co
 group by co

———————————————————————–以下是复制过来的供参考———————————————————————————————————————–

嵌套查询的意思是,一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。

   嵌套查询的工作方式是:先处理内查询,由内向外处理,外层查询利用内层查询的结果嵌套查询不仅仅可以用于父查询select语句使用。还可以用于insert、update、delete语句或其他子查询中。

一、子查询的组成

  1、包含标准选择列表组件的标准select查询。

  2、包含一个或多个表或者视图名称的标准from子句。

  3、可选的where子句。

  4、可选的group by子句。

  5、可选的having子句。

二、子查询的语法规则

  1、子查询的select查询总是使用圆括号括起来。

  2、不能包括compute或for.browse子句。

  3、如果同时指定top子句,则可能只包括order by子句。

  4、子查询最多可以嵌套到32层。个别查询可能会不支持32层嵌套。

  5、任何可以使用表达式的地方都可以使用子查询,只要它返回的是单个值。

  6、如果某个表只出现在子查询中二不出现在外部查询中,那么该表的列就无法包含在输出中。

三、简单子查询

  示例:

select name,age from person 
where age > 
(
    select age from person 
    where name = '孙权'
)

   输出结果为:

   SQL 嵌套查询 ---比较 很有用「建议收藏」

四、in嵌套查询

   in关键字用于where子句中用来判断查询的表达式是否在多个值的列表中。返回满足in列表中的满足条件的记录。

   示例:

select name from person 
where countryid in 
(
    select countryid from country
    where countryname = '魏国'
)

   输出结果为:

   SQL 嵌套查询 ---比较 很有用「建议收藏」

五、some嵌套查询

  1、语法

  some在sql中的逻辑运算符号,如果在一系列比较中,有些值为True,那么结果就为True。some的语法是:

  <表达式>{ =|<>|!=|>|>=|!>|<|<=|!<}some(子查询)  

  示例:

select name from person 
where countryid = some       --用等号和以下查询到的值比较,如果与其中一个相等,就返回
(
    select countryid from country
    where countryname = '魏国'
)

  输出结果为:

  SQL 嵌套查询 ---比较 很有用「建议收藏」

六、all嵌套查询

  all是sql中的逻辑运算符好,如果一系列的比较都为true,那么结果才能为true。

  1、语法

  <表达式>{ =|<>|!=|>|>=|!>|<|<=|!<}all(子查询)

  示例:

select name from person 
where countryid > all   --当countryid大于以下返回的所有id,此结果才为True,此结果才返回
(
    select countryid from country
    where countryname = '魏国'
)

  输出结果为:

  SQL 嵌套查询 ---比较 很有用「建议收藏」

七、exists嵌套查询

   1、语法

   exists是sql中的逻辑运算符号。如果子查询有结果集返回,那么就为True。exists代表“存在”的意义,它只查找满足条件的那些记录。一旦找到第一个匹配的记录后,就马上停止查找。

  exists 子查询        

   其中子查询是一个首先的select语句,不允许有compute子句和into关键字。

   exists 的意思是,子查询是否有结果集返回。
   例如:

SELECT * FROM Person
WHERE exists
(
    SELECT 1      --SELECT 0  SELECT NULL 返回结果都一样,因为这三个子查询都有结果集返回,因此总是True  SELECT * FROM Person照常执行
)

   但是如果子查询中因为加了条件而没有结果集返回,则主语句就不执行了:

SELECT * FROM Person
WHERE exists
(
    SELECT * FROM Person 
    WHERE Person_Id = 100    --如果不存在Person_Id的记录,则子查询没有结果集返回,主语句不执行
)
分类:
SQL 语句

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/169418.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 向量范数和矩阵范数的理解

    向量范数和矩阵范数的理解向量范数今天来聊一聊机器学习矩阵论的相关知识——范数(Norm)。在学习机器学习基础算法的推导过程中,可以看到很多地方都应用到了这个范数。范数属于矩阵论的知识范围,可见数学基础的重要性。机器学习的数学基础重点推荐——MIT的机器学习数学基础课如果只需要快速了解,请参考——矩阵范数计算完整的MIT数学基础课程笔记可以参考:MIT18.06线性代数笔记这是个非常棒的手动演算流程,本文也将编码进行验算。向量范数定义:一个向量空间V到实数空间的映射,不仅如此,还要满足喜爱额条件:∣∣x∣∣⩾

  • linux查看硬盘smart信息_centos查看未挂载磁盘

    linux查看硬盘smart信息_centos查看未挂载磁盘1          编写目的在如今大数据的环境中,磁盘的性能和稳定性是非常重要的一个业务因素。在Linux系统中,smartctl是较为常用的磁盘检测工具。本文基于Linux系统中smartctl进行分析,目的在于说明相关工具的使用,并对SMART(Self-Monitoring,AnalysisandReportingTechnology)做一些分析。2          …

  • 软件公司有哪些[通俗易懂]

    软件公司有哪些[通俗易懂]1、ERP厂商sap、oracle、赛捷(sage)、用友、金蝶、鼎捷、神州数码、浪潮、新中大、东软、中软、宝信软件、博科、天元国信、微软、正航软件、管家婆、金算盘、管易、智邦国际、德米萨、通易、精效ERP、万里牛懒人ERP、来钱快速达、任我行、美萍、精算软件、艾特、快普、商友、东华软件、高格ERP、汉得信息、哲霖软件、九天软件、网店管家、吉客云、普源软件2、CRM厂商salesforce、南讯软件、爱客、八百客、纷享销客、百会、车商通SCRM、EC、富润、红圈、码客、前海圆舟、时趣SOCIAL、数云

    2022年10月10日
  • 三十岁以上的男人才会用到的网站,不浮夸这是真的

    三十岁以上的男人才会用到的网站,不浮夸这是真的三十岁以上的男人其实已经经历过很多多岁月了,无论是工作、社交、还是家庭都应该是得心应手的。但是未必所有三十岁的男人都用到过下面这些网站。PPT素材类优品PPT我们可以免费PPT模板下载网站!企帮

  • Linux服务器Tomcat中Catalina.log中定位错误信息方法

    linux 中tomcat日志分析通过命令定位找到错误信息

  • android手机指纹识别_屏下指纹缺点

    android手机指纹识别_屏下指纹缺点手机科技发展到目前阶段,对于指纹解锁技术已经到第二阶段了,第一阶段有三种指纹解锁方式:正面、侧面、背面,而第二阶段那就是目前还处于上阵新兵状态的屏下指纹,这里我就我个人使用的情况,来谈一下这几种指纹解锁的优劣势吧。一、正面指纹解锁,代表机型iPhone如果我没有记错的话,虽然不是第一个用,但苹果的指纹解锁是从iPhone5S开始,并流行起来的,并且从此就一发不可收拾,我是从iPhone6SP开…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号