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)


相关推荐

  • 征途服务器架设_征途sf架设服务器的基本条件

    征途服务器架设_征途sf架设服务器的基本条件2、设置系统自动启动防火墙vi/etc/rc.d/rc.local增加一行/etc/rc.d/forward保存后退出3、设置文件打开数1)修改/etc/security/limits.conf增加2行:*   soft  nofile 4096*   hard  nofile 655352)修改/etc/pam.d/login增加1行sessionrequired pam_limit…

  • java之父

    java之父《Java》之父——詹姆斯·高斯林和麦克·舍林丹也加入了帕特里克的工作小组。他们和其他几个工程师一起在加利福尼亚州门罗帕克市沙丘路的一个小工作室里面研究开发新技术,瞄准下一代智能家电(如微波炉)的程序设计,SUN公司预料未来科技将在家用电器领域大显身手。团队最初考虑使用C语言,但是很多成员包括SUN的首席科学家比尔·乔伊,发现C和可用的API在某些方面存在很大问题。工作小组

  • Windows下使用cmd进入MySQL

    Windows下使用cmd进入MySQL安装mysql后使用cmd命令行进入mysql

  • 喵友黎言卓:一个人的创业战争「建议收藏」

    喵友黎言卓:一个人的创业战争「建议收藏」大二选择辍学创业,没有团队、没有资金,个人生活极其窘困。这个站长还能坚持多久?24岁的创业者黎言卓,想做一款既带有社交与分享功能,但又与SNS不同;既可以写博客,却又与传统博客、轻博客、微博不同的产品。描述这款产品似乎有些拗口,总之,这个身处广州、在校期间被同学为电脑“天才”的年青人,2010年一个人编程、创办了一个叫“喵友”的博客社区。目前它已经有大约9000名用户,且每月以千人的数量在增长…

  • docker-compose 集群_docker集群管理

    docker-compose 集群_docker集群管理前言实际工作中我们部署一个应用,一般不仅仅只有一个容器,可能会涉及到多个,比如用到数据库,中间件MQ,web前端和后端服务,等多个容器。我们如果一个个去启动应用,当项目非常多时,就很难记住了,所有

发表回复

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

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