SQL是关于集合的
一 以面向集合的思维方式来思考
公司里每个工作岗位上干了同样年数的员工列表
select emplyee_id from job_history group by employee_id
having min(round(months_between(start_date,end_date)/12,0)) = max(round(months_between(start_date,end_date)/12,0));
一个顾客在订单之间的平均天数
select (max(trunc(order_date)) - min(trunc(order_date))) / count(*) avg_days_between from orders where customer_id = 102;
二 集合运算
与联结的区别就在于联结是用来将不同表中的列组合起来形成一行。集合运算比较所输入查询的所有行并返回一个不包含重复值的行集。
union all: 返回两个集合中的所有行,包含重复。
union: 返回来自所有输入查询的不包含重复值的结果集。
minus: 返回在数据行源A中存在但是在B中不存在的数据行集
intersect:返回A和B中都存在的数据行集。
三 集合与空值
空值与非直观结果
除非显示声明,它们不会被包含在结果集中。
select * from emp where doptno not in (10,20,30) or deptno is null;
空值与group by和order by
默认的排序规则就是将空值放在最后。如果你想把空值放在最前面,只需要在order by字句后面加上nulls first
select comm,count(*) ctr from emp group by comm order by comm nulls first;
SQL是关于集合的的更多相关文章
- 【SQL查询】集合查询之INTERSECT
[SQL查询]集合查询之INTERSECT 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~ ...
- 04 SQL是关于集合的
面向集合去思考 要想成为写SQL语句的高级专家, 最困难的是一个转变就是从面相过程的思维方式转变到面相集合的思维方式. 首先要停止那些一次处理一行数据的过程化步骤思维, 试着把思路转移到使用类似于 “ ...
- SQL语句实例集合
SQL语句实例 表操作 例 1 对于表的教学管理数据库中的表 STUDENTS ,可以定义如下: CREATE TABLE STUDENTS (SNO NUMERIC (6, ...
- SQL记录-PLSQL集合
PL/SQL集合 集合是一个有序组具有相同的数据类型的元素.每个元素进行标识的唯一标表示其在集合中的位置. PL/SQL提供了三种集合类型: 索引表或关联数组 嵌套表 可变大小的数组或变长数组 Ora ...
- SQL入门之集合操作
尽管可以在与数据库交互时一次只处理一行数据,但实际上关系数据库通常处理的都是数据的集合.在数学上常用的集合操作为:并(union),交(intersect),差(except).对于集合运算必须满足下 ...
- SQL使用总结——集合操作函数
Oracle中集合操作符专门用于合并多条select 语句的结果,包括:UNION, UNION ALL, INTERSECT, MINUS.当使用集合操作符时,必须确保不同查询的列个数和数据类型匹配 ...
- SQL Server温故系列(4):SQL 查询之集合运算 & 聚合函数
1.集合运算 1.1.并集运算 UNION 1.2.差集运算 EXCEPT 1.3.交集运算 INTERSECT 1.4.集合运算小结 2.聚合函数 2.1.求行数函数 COUNT 2.2.求和函数 ...
- 恕我直言你可能真的不会java第7篇:像使用SQL一样排序集合
在开始之前,我先卖个关子提一个问题:我们现在有一个Employee员工类. @Data @AllArgsConstructor public class Employee { private Inte ...
- 过滤sql特殊字符方法集合
/// <summary> /// 过滤不安全的字符串 /// </summary> /// <param name="Str" ...
随机推荐
- Javascript 笔记与总结(2-11)暴力操作节点
innerHTML 代表节点内的内容,能读能写 虽然不是 W3C 规定的标准,但是各浏览器都支持得很好 [例] <!DOCTYPE html> <html lang="en ...
- MyBatis之传入参数
在MyBatis的select.insert.update.delete这些元素中都提到了parameterType这个属性.MyBatis现在可以使用的parameterType有基本数据类型和Ja ...
- eclipse SDK更新管理器安装插件
1.在Eclipse的主菜单,点击help,选择Install New Software 2.Work with: Indigo - http://download.eclipse.org/relea ...
- Solr高亮详解
hl.fl: 用空格或逗号隔开的字段列表.要启用某个字段的highlight功能,就得保证该字段在schema中是stored.如果该参数未被给出,那么就会高亮默认字段 standard handle ...
- 【转】如何使php的MD5与C#的MD5一致?
有c#生成MD5的代码如下: class CreateMD5 { static void Main(string[] args) { string source = "提问指南"; ...
- arch框架人员、组织说明
目前ERP辅助系统集成了三大模块功能,分别是财务辅助.物理辅助.报账平台. 财务辅助模块人员在ARCH_USER 表中进行管理,通过单独的[用户映射功能]将ARCH系统用户和ERP用户进行关联,关联信 ...
- java override
java override // 覆盖父类的方法,在子类直接调用子类内部这个方法时 public class TestCalc{ protected static class Wine{ String ...
- jtable更新数据
static JTable table; public void refrushTableData() { String[] columnNames = { " }; String[][] ...
- ::after,::before使用
::after,::before使用 1.:before 选择器在被选元素的内容前面插入内容. 请使用 content 属性来指定要插入的内容. <!DOCTYPE html> < ...
- docker kubernetes--
http://kubernetes.io/docs/getting-started-guides/docker/ https://hub.docker.com/r/solsson/hyperkube- ...