摘要: 序言 设计窗口函数目的? 在开窗函数出现之前存在着很多用 SQL 语句很难解决的问题,很多都要通过复杂的相关子查询或者存储过程来完成。 为了解决这些问题,在 2003 年 ISO SQL 标准加入了开窗函数,开窗函数的使用使得这些经典的难题可以被轻松的解决。 SQL Server 2012之后对窗口 阅读全文
posted @ 2019-01-15 22:07 ~沐风 阅读(1606) 评论(0) 推荐(1) 编辑
摘要: 序言 SELECT datediff(ms, '2019-07-18 14:01:50.867', '2019-07-18 14:01:52.877') coalesce函数(下面简称函数),返回一个参数中非空的值 SELECT COALESCE(NULL, NULL, GETDATE()) 由于两 阅读全文
posted @ 2019-01-15 22:06 ~沐风 阅读(590) 评论(0) 推荐(0) 编辑
摘要: 概述 函数有且只有一个输入参数和一个返回值,而存储过程没有这个限制; 返回表变量的函数可以当做VIEW或者临时表用在WHERE/HAVING/SELECT/JOIN语句中而存储过程不可以; 存储过程中可以使用try-catch块和事务,而函数中不可以 表值函数 表值函数主要用于数据计算出来返回结果集 阅读全文
posted @ 2019-01-15 22:06 ~沐风 阅读(1279) 评论(0) 推荐(1) 编辑
摘要: 序言 为什么需要临时表? 临时表利用了数据库临时表空间,由数据库系统自动进行维护,因此节省了物理表空间。并且由于临时表空间一般利用虚拟内存,大大减少了硬盘的I/O次数,因此也提高了系统效率。 临时表在事务完毕或会话完毕数据库会自动清空,不必记得用完后删除数据。 临时表 什么是临时表 临时表属于会话级 阅读全文
posted @ 2019-01-15 22:05 ~沐风 阅读(1201) 评论(0) 推荐(1) 编辑
摘要: 变量 局部变量 1.声明局部变量 @where NVARCHAR(4000), @whereFORhruserinfo NVARCHAR(4000) = '', @order NVARCHAR(200) = '', @pagesize INT,--每页有几条数据 @page INT,--当前页数 @ 阅读全文
posted @ 2019-01-15 22:05 ~沐风 阅读(1949) 评论(0) 推荐(0) 编辑
摘要: 概述 ROW_NUMBER() OVER(PARTITION BY CustId ORDER BY ID DESC) https://www.jb51.net/article/75533.htm 开窗函数 SELECT empid, ordermonth, val, SUM(val) OVER(PA 阅读全文
posted @ 2019-01-15 22:03 ~沐风 阅读(742) 评论(0) 推荐(1) 编辑
摘要: 1 https://www.cnblogs.com/edisonchou/p/6129717.html 阅读全文
posted @ 2019-01-15 22:03 ~沐风 阅读(390) 评论(0) 推荐(0) 编辑
摘要: 1 阅读全文
posted @ 2019-01-15 22:03 ~沐风 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 变量 -- Variables -- Declare a variable and initialize it with a value DECLARE @i AS INT; SET @i = 10; GO -- Declare and initialize a variable in the sa 阅读全文
posted @ 2019-01-15 22:03 ~沐风 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 序言 为什么需要子查询? 查看多表的数据也可使用表连接,表连接(join on...),表连接都可用子查询替换,但有的子查询不能用表连接替换,子查询比较灵活,方便,形式多样,适合于作为查询的筛选条件。 子查询 当一个查询是另一个查询的条件时,称之为子查询。外面的查询成为父查询,圆括号嵌入的查询成为称 阅读全文
posted @ 2019-01-15 22:02 ~沐风 阅读(3854) 评论(4) 推荐(2) 编辑
摘要: 概述 表表达式是一种命名的查询表达式,代表一个有效地关系表。可以像其他表一样,在数据处理中使用表表达式。 SQL Server支持四种类型的表表达式:派生表,公用表表达式,视图和内联表值函数。 为什么使用表表达式: 1.使用表表达式的好处是逻辑方面,在性能上没有提升。 2.通过模块化的方法简化问题的 阅读全文
posted @ 2019-01-15 22:02 ~沐风 阅读(750) 评论(0) 推荐(0) 编辑
摘要: 概述 为什么使用集合运算: 在集合运算中比联接查询和EXISTS/NOT EXISTS更方便。 并集运算(UNION) 并集:两个集合的并集是一个包含集合A和B中所有元素的集合。 在T-SQL中。UNION集合运算可以将两个输入查询的结果组合成一个结果集。需要注意的是:如果一个行在任何一个输入集合中 阅读全文
posted @ 2019-01-15 22:02 ~沐风 阅读(1615) 评论(0) 推荐(0) 编辑
摘要: 测试数据脚本 CREATE TABLE Atable ( S# INT, Sname nvarchar(32), Sage INT, Sfrom nvarchar(8) ) insert into Atable select 1,N'李四',18,N'A' union all select 2,N' 阅读全文
posted @ 2019-01-15 22:00 ~沐风 阅读(2217) 评论(0) 推荐(0) 编辑
摘要: 示例数据库 点我下载 一条完整的sql语句 select top | distinct 字段, 表达式, 函数, ... from 表表达式 where 筛选条件 group by 分组条件 having 筛选条件 order by 排序依据; SQL的执行顺序: 运算符的优先级 SELECT语句的 阅读全文
posted @ 2019-01-15 21:51 ~沐风 阅读(1259) 评论(0) 推荐(1) 编辑