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網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_5935.html