SQL Server2012在开发中的一些新特性建站知识
导读:1建站知识SQL Server 2012已经发布一段时间了,最近在新的机器上安装了最新的SQL Server 2012 SP1,体检下感觉良好。官方给出了一大网站建设多少钱网站seo优化课程。
一、增加了Sequence对象。这个对于Oracle用户来说是最熟悉不过的数据库对象企业网站建设了,现在在SQL Server中终于也看到了类似的对象,只是在使用的语法上有一点点不一样。创建语法也是CREATE SEQUENCE,使用的时候需要使用NEXT VALUE FOR来取下一个值:
复制代码 代码如下:
CREATE SEQUENCE [dbo].[SQ_1] AS [bigint] START WITH 1 INCREMENT BY 1;
SELECT NEXT VALUE FOR [SQ_1] AS FirstUse;
如果要插入一个值,那么就是:
复制代码 代码如下:
INSERT INTO t1(c1,c2)VALUES (NEXT VALUE FOR SQ_1, 'Test') ;
但是好像没有提供获得当前值的语法,难道必须取下一个值?
二、新的分页查询语法。以前在SQL Server中分页,最早是用top或者临时表,后来出现了ROW_NUMBER函数实现分页,现在最新的SQL2012可以在order by子句后跟offset和fetch来分页,感觉有点像是LINQ的语法。比如查询1W行之后的20条有效项目信息,那么ROW_NUMBER分页查询的SQL是:
复制代码 代码如下:
select *from(select *,ROW_NUMBER() over(order by p.PROJECT_ID) Rfrom PROJECT pwhere p.IS_DELETED=0 ) xwhere x.R between 10001 and 10020而是有了新的语法,那么查询语句就是:
SELECT *FROM PROJECT pwhere p.IS_DELETED=0ORDER BY p.PROJECT_ID OFFSET 10001 ROWSFETCH NEXT 20 ROWS ONLY;
显然使用了新的语法后代码看起来更简洁,意思表达也更明确。从执行效率上来讲,试了一下,是一样的。
三、一些新的系统函数。3.1相当于C#中三目运算符的IIF函数
这个函数和VBA中的IIF函数相同,判断第一个参数的表达式是否为真,真则返回第二个参数,假则返回第三个参数。
有了这个函数很多时候我们可以不用再使用复杂的case when语法了。比如我们判断项目的大小以显示对应的字符串,那么老的写法是:
复制代码 代码如下:
select p.CODE,case when p.SIZE>100 then 'Big' else 'Small' end as SIZE_STRINGfrom PROJECT pwhere SIZE is not null
现在,我们可以简单的写成:
复制代码 代码如下:
select p.CODE,IIF(p.SIZE>100,'Big','Small') as SIZE_STRINGfrom PROJECT pwhere SIZE is not null
3.2不用判断类型和NULL的字符串连接CONCAT函数
SQL Server本来对字符串的连接很简单,直接使用“+”号,但是需要注意两个问题,一网站建设教程是必须类型都是字符串类型,如果是数字类型那么会报语法错误,所以必须把数字类型转换为字符串。二是如果其中的某个值为null,那么整个连接的结果就是一个null字符串,所以还需要判断null,所以本来只是一个连接字符串的查询就会写的很复杂:
声明: 本文由我的SEOUC技术文章主页发布于:2023-05-23 ,文章SQL Server2012在开发中的一些新特性建站知识主要讲述新特性,标签,SQL网站建设源码以及服务器配置搭建相关技术文章。转载请保留链接: https://www.seouc.com/article/web_5935.html