sql server——子查询
简述:
在查询语句中包含着有另外一条查询语句,被包含的查询语句称为子查询,包含着子查询的查询就称为父查询。
总之,子查询就是在查询语句里嵌套一条或者多条查询语句。
常用子查询分类:
一、独立子查询

特征:子查询语句可以独立运行
二、相关子查询
select * from student where majorId = (select majorId from major where majorId=student.majorId)
特征:子查询中引用了父查询中的字段,依赖于父查询
| 子查询的使用 |
一、子查询做为查询条件
描述:当一条查询语句需要一个外部的值做为条件的时候,可以使用一个独立的查询先得到这个值,在将值返回进行条件的判断。
注意1:使用子查询做为条件的时候,子查询的查询结果只能返回一列的值,如果返回多列将报错:

注意2:子查询如果返回单列多行的结果,应该在查询语句where 后将"="换成"in",in关键字可以接收多行结果集。使用"="接收多行报错:

注意3:如果子查询做为条件返回的是,多行多列的结果集,可以采用exists接收查询结果
二、将子查询做为一个结果集
select * from (select * from student where majorId=1) tab where stuGender=1
注意:将子查询做为结果集,那么必须要为这个结果集取一个别名
三、将子查询做为查询语句中的某一列
select stuName,(select majorName from major where student.majorId=major.majorId) from student
四、子查询实现分页
方式1:
--pageIndex=2 pageSize=5
select * from (select ROW_NUMBER() over (order by did) as num ,* from DonationDetail ) tab
where num>=6 and num <=10
方式2:
--pageIndex=3 pageSize=5
select top 5 * from (select ROW_NUMBER() over (order by did) as num,* from DonationDetail) tab
where num not in (select top (3*5-5) ROW_NUMBER() over (order by did) as num2 from DonationDetail)
ROW_NUMBER() over (order by 字段):
根据指定的字段排序,对排序后的结果集的每一行添加一个不间断的行号。
用的时候需注意:如果使用生成行号的查询用作结果集,那么必须为该结果集取一个别名,同时生成的行号字段也要取一个别名
sql server——子查询的更多相关文章
- C#构造方法(函数) C#方法重载 C#字段和属性 MUI实现上拉加载和下拉刷新 SVN常用功能介绍(二) SVN常用功能介绍(一) ASP.NET常用内置对象之——Server sql server——子查询 C#接口 字符串的本质 AJAX原生JavaScript写法
C#构造方法(函数) 一.概括 1.通常创建一个对象的方法如图: 通过 Student tom = new Student(); 创建tom对象,这种创建实例的形式被称为构造方法. 简述:用来初 ...
- SQL Server子查询填充DataSet时报500内部错误的解决办法
运行环境为Visual Studio 2010,数据库为SQL Server 2008. 执行下面SQL语句 SELECT SubsiteId, SubsiteTitle, count(Collect ...
- SQL Server 子查询错误:No column name was specified for column 2 of 'a' error (转载)
问: I have a MySQL query and I ran it working fine but same query showing error in SQL Server. SQL Se ...
- sql server 子查询 和exists使用
概述 子查询的概念: 当一个查询是另一个查询的条件时,称之为子查询.子查询可以嵌套在主查询中所有位置,包括SELECT.FROM.WHERE.GROUP BY.HAVING.ORDER BY. 外面的 ...
- SQL Server 子查询遇到的坑
这两天改 Bug 时使用 Sql Server 的子查询遇到了一些问题,特此记录一下,之前用 MySQL 比较多,按照 MySQL 的语法其实是没有问题的. 以下面这张表为例: 执行以下 SQL: s ...
- SQL server 子查询、设置主键外键、变量及变量查询
一.子查询 子查询,又叫做嵌套查询. 将一个查询语句做为一个结果集供其他SQL语句使用,就像使用普通的表一样,被当作结果集的查询语句被称为子查询. 子查询有两种类型: 一种是只返回一个单值的子查询,这 ...
- SQL Server 子查询
这些主要是老师上课讲的一些知识点,自己做了一些整理放在这里~~~ 子查询可以是标量的.多值的或是表值的. 在期待单个值的地方可以使用标量子查询.例如,以下查询返回具有最大员工编号的员工信息: SELE ...
- SQL SERVER 子查询使用Order By;按In排序
[子查询]使用order by percent * from table order by id) a 这时发现结果没有按id排序,需要将100 percent 改成 99.999 percent 或 ...
- SQL Server子查询实例
例子一 SELECT COUNT(*) FROM ( SELECT [PersonID] FROM [tbiz_AssScore] GROUP BY PersonID ) M 语法说明: 1).FRO ...
随机推荐
- 小白详细解析C#反射特性实例
套用MSDN上对于反射的定义:反射提供了封装程序集.模块和类型的对象(Type 类型).可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性.如果代 ...
- RabbitMQ 很成熟 不是阿里的
简介 官网 http://www.rabbitmq.com RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现 RabbitMQ实现了AMQ ...
- DIY FRDM-KL25Z开发环境 -- 基于GNU工具链
IDE大行其道的今天,一键make极大的便利了开发的同时,也每每让各种半路出家的猿们遇到工具链的问题感到束手无策(不就是说自己嘛?^_^!!!).也玩过不少板子了,始终没去深究工具链方面的问题,对于嵌 ...
- Oracle 通过数据字典查询系统信息
简介:数据字典记录了数据库系统的信息,他是只读表和视图的集合,数据字典的所有者是sys用户.注:用户只能在数据字典上执行查询操作,而维护和修改是由系统自己完成的. 1.数据字典的组成:数据字典包括数据 ...
- bug缺陷级别定义
缺陷定义: 出现以下缺陷测试定义为致命 bug l 系统无响应处于死机状态. l 点击某个菜单后出现“The page cannot be displayed”或者返回异常错误. l 进行某 ...
- 关于table-layout的用法
定义:tableLayout 属性用来显示表格单元格.行.列的算法规则. 自动表格布局:auto(默认) 在自动表格布局中,列的宽度是由列单元格中没有折行的最宽的内容设定的. 此算法有时会较慢,这是由 ...
- Django查询一个权限中包含哪些用户
Django查询一个权限中包含哪些用户 Django的Permission对象中没有直接查询相关用户的信息,而都是通过User对象来查询某个用户有哪些权限,例如: user.objects.get(u ...
- resteasy上传单个文件/多个文件到阿里云服务器
代码如下: ExcelServerController.java package com.xgt.controller; import com.xgt.bean.bs.ExcelBean; impor ...
- 学习笔记之--认识Xcode中的重要成员:lldb调试器
之前对lldb调试器了解比较少,平时主要用来打印日志和暂定时用鼠标查看属性数据以及使用p po一些简单的命令语句. 今天看了一些关于lldb的文章,顿时觉得之前对它了解太少了,原来它还有那么多的功能. ...
- jsp继承rapid库
如果jsp不使用继承方式开发,而是用标准的指令或动作元素去include,实在是太多重复代码. rapid-framework是谷歌的一个项目,可以实现jsp网页的继承,也就是书写模板页. 但是在ma ...