日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

探討SQL Server 2005的評(píng)價(jià)函數(shù)_Mssql數(shù)據(jù)庫教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:SQL SERVER中易混淆的數(shù)據(jù)類型
數(shù)據(jù)類弄是數(shù)據(jù)的一種屬性,表示數(shù)據(jù)所表示信息的類型。任何一種計(jì)算機(jī)語言都定義了自己的數(shù)據(jù)類型。當(dāng)然,不同的程序語言都具有不同的特點(diǎn),所定義的數(shù)據(jù)類型的各類和名稱都或多或少有些不同。

 一、 簡(jiǎn)介

  在2005年11月份,微軟發(fā)行了三種新產(chǎn)品系列:Visual Studio 2005,SQL Server 2005和.NET框架2.0(它包括ASP.NET 2.0)。SQL Server 2005是微軟自從其上一個(gè)主要發(fā)行版本SQL Server 2000以來最新版本的數(shù)據(jù)庫平臺(tái)。在過去五年的發(fā)展中,SQL Server中加入了大量的新特征,所有這些新內(nèi)容都被總結(jié)到微軟網(wǎng)站的一篇文章《What's New in SQL Server 2005?》中。使用SQL Server 2005作為后端數(shù)據(jù)庫構(gòu)建基于web應(yīng)用程序的開發(fā)者很可能會(huì)對(duì)這些新特征抱有濃厚的興趣,這些新特征包括新的T-SQL改進(jìn),更好的Visual Studio集成,與CLR/.NET框架的集成,以及SQL Server 2005 Management Studio應(yīng)用程序(它是SQL Server 2000的企業(yè)管理器的一個(gè)更為"平滑"的版本)。

  與以前的SQL Server 2000相比, 2005中的T-SQL改進(jìn)使得編寫某些類型的查詢極為容易。在SQL Server 2005中,T-SQL語法更為精練、可讀和易于理解。

  在本文中,我們將專門探討SQL Server 2005的評(píng)價(jià)函數(shù),它們大大簡(jiǎn)化了對(duì)查詢結(jié)果進(jìn)行評(píng)價(jià)的過程。

  二、 數(shù)據(jù)模型和評(píng)價(jià)結(jié)果基礎(chǔ)

  在我們分析如何使用普通查詢模式之前,讓我們首先創(chuàng)建一個(gè)能夠運(yùn)行這些查詢的數(shù)據(jù)模型。在本文中,我使用SQL Server 2005 Express版本來實(shí)現(xiàn)我的演示,并且包括了一個(gè)數(shù)據(jù)庫和一個(gè)ASP.NET 2.0網(wǎng)站(請(qǐng)參考本文相應(yīng)的完整源碼。就象Visual Studio一樣,SQL Server發(fā)行中也一同加雜了其它一些不同的版本。其中,Express版本是一個(gè)針對(duì)業(yè)余愛好者、學(xué)生等群體的免費(fèi)版本。如果你下載和安裝Visual Web Developer(Visual Studio針對(duì)web開發(fā)者的Express版本),那么你可以選擇一同安裝SQL Server 2005 Express版本)。

  對(duì)于本文中的示例,我們將使用一個(gè)含有產(chǎn)品、銷售人員(雇員)、顧客和訂單信息的數(shù)據(jù)庫。我們使用五個(gè)表來建模:Customers,Employees,Products,Orders和OrderItems。其中,Customers,Employees和Products表分別包含每一個(gè)顧客,雇員和產(chǎn)品信息的行記錄數(shù)據(jù)。每當(dāng)一個(gè)顧客進(jìn)行購買活動(dòng),一條新記錄被添加到Orders表中,其中的信息指示該顧客實(shí)現(xiàn)了購買、該雇員進(jìn)行的這一銷售活動(dòng)及訂單的日期。其中,OrderItems映射訂單中的每一件產(chǎn)品,產(chǎn)品的數(shù)量和價(jià)格總值(假定較大的購買量可以打折)。下圖展示了這些表(及字段)以及它們之間的關(guān)系。

 
如圖所展示的,這個(gè)OrderItems在Orders和Products表之間建立一個(gè)對(duì)多對(duì)的連接。

  當(dāng)構(gòu)建報(bào)告或分析數(shù)據(jù)時(shí),用戶或管理員經(jīng)常希望看到以某種方式對(duì)數(shù)據(jù)的評(píng)價(jià)信息。例如,你的老板可能想要一個(gè)報(bào)告來顯示賣路最好的前十項(xiàng),或在第三個(gè)季度銷售部中實(shí)現(xiàn)最大收入的前三名銷售人員。更復(fù)雜的情況可能是僅返回第3到第5個(gè)評(píng)價(jià)排名的銷售人員。在SQL Server 2000中,返回最高排名項(xiàng)的查詢可以通過使用TOP或ROWCOUNT關(guān)鍵字來實(shí)現(xiàn)。為了檢索一個(gè)特定評(píng)價(jià)子集,你需要使用一種"派生表"(或者是一種基于視圖的手段)。

  SQL Server 2005中引入了四個(gè)新的評(píng)價(jià)函數(shù):ROW_NUMBER,RANK,DENSE_RANK和NTILE。盡管這些與SQL Server 2000所提供的函數(shù)相比是一個(gè)明顯的進(jìn)步,但是這些函數(shù)的使用仍然存在一些限制(要求使用派生表或視圖來實(shí)現(xiàn)功能更為強(qiáng)大的應(yīng)用程序)。下面讓我們分析一下每一個(gè)函數(shù)。

  三、 使用ROW_NUMBER函數(shù)計(jì)算行數(shù)

  這個(gè)ROW_NUMBER函數(shù)把一個(gè)序數(shù)值賦給每一個(gè)返回的記錄,該序數(shù)值依賴于一個(gè)特定的與這個(gè)函數(shù)一起使用的ORDER BY語句。函數(shù)ROW_NUMBER的語法是:ROW_NUMBER() OVER([partition] ORDER BY子句)。例如,下列查詢將返回從最貴的到最便宜的產(chǎn)品,對(duì)每一種產(chǎn)品按價(jià)格進(jìn)行評(píng)價(jià):

SELECT ProductID,Name,Price, ROW_NUMBER() OVER(ORDER BY Price DESC) As PriceRankFROM Products

  這個(gè)語句的執(zhí)行結(jié)果如下表所示:

分享:SQL Server 中易混淆的數(shù)據(jù)類型
近來在做數(shù)據(jù)庫設(shè)計(jì),有時(shí)候真弄不清SQL2000里的數(shù)據(jù)類型,所以摘了這篇文章。 摘自“藍(lán)色理想”。   (1)char、varchar、text和nchar、nvarchar、ntext char和varchar的長

共3頁上一頁123下一頁
來源:模板無憂//所屬分類:Mssql數(shù)據(jù)庫教程/更新時(shí)間:2008-08-22
相關(guān)Mssql數(shù)據(jù)庫教程