随笔分类 - 数据库
摘要:一、前言 现在做项目数据访问基本都会选择一种orm框架,它以面向对象的形式屏蔽底层的数据访问形式,让开发人员更集中在业务处理上,而不是和数据库的交互上,帮助我们提高开发效率;例如一些简单的insert、update,我们不需要写insert into...sql 语句,而是直接new一个实体对象,然
阅读全文
摘要:快下班了,抽点时间总结一下sql 的 case 用法。 sql 里的case的作用: 用于计算条件列表的表达式,并返回可能的结果之一。sql 的case 类型于编程语言里的 if-esle if-else 或者 switch,但它不用于控制sql程序的执行流程,而是作为列的逻辑使用。 语法:...
阅读全文
摘要:一、需求 之前sql server 的排名函数用得最多的应该是RoW_NUMBER()了,我通常用ROW_NUMBER() + CTE 来实现分页;今天逛园,看到另一个内置排名函数还不错,自己顺便想了一个需求,大家可以花1分钟先想想要怎么实现。 需求很简单:求成绩排名前五的学生信息。 例如: ...
阅读全文
摘要:博客园有许多关于nolock的文章,大部分都写得很好,例如:http://www.cnblogs.com/huangxincheng/p/4292320.html这里仅结合个人项目,作为个人笔记记录。nolock 的使用方法如:select * from table1 with(nolock)wit...
阅读全文
摘要:这是 sql server 帮助文档关于apply的描述: 使用 APPLY 运算符(2005或以上版本)可以为实现查询操作的外部表表达式返回的每个行调用表值函数。表值函数作为右输入,外部表表达式作为左输入。通过对右输入求值来获得左输入每一行的计算结果,生成的行被组合起来作为最终输出。APPLY 运...
阅读全文
摘要:有时候会碰到行转列的需求(也就是将列的值作为列名称),通常我都是用 CASE END + 聚合函数来实现的。如下:declare @t table(StudentName nvarchar(20), Subject nvarchar(20), Score int)Insert into @t (St...
阅读全文
摘要:这是一道常见的面试题,在实际项目中经常会用到。需求:求出以产品类别为分组,各个分组里价格最高的产品信息。实现过程如下: declare @t table( ProductID int, ProductName varchar(20), ProductType varchar(20), Price...
阅读全文
摘要:临时表与表变量都可以起到“临时”的作用,那么两者主要的区别是什么呢?这里不讨论创建方式,以及全局临时表、会话临时表这些,主要记录一下个人对两者的主要区别以及适用情况的看法,有什么不对或补充的地方,欢迎讨论。区别:1. 表变量存储在内存中,当创建表变量时,sql server不会产生日志,也不会维护统...
阅读全文