探討SQL Server 2005的評價函數(shù)_Mssql數(shù)據(jù)庫教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:SQL SERVER中易混淆的數(shù)據(jù)類型數(shù)據(jù)類弄是數(shù)據(jù)的一種屬性,表示數(shù)據(jù)所表示信息的類型。任何一種計算機(jī)語言都定義了自己的數(shù)據(jù)類型。當(dāng)然,不同的程序語言都具有不同的特點,所定義的數(shù)據(jù)類型的各類和名稱都或多或少有些不同。
一、 簡介在2005年11月份,微軟發(fā)行了三種新產(chǎn)品系列:Visual Studio 2005,SQL Server 2005和.NET框架2.0(它包括ASP.NET 2.0)。SQL Server 2005是微軟自從其上一個主要發(fā)行版本SQL Server 2000以來最新版本的數(shù)據(jù)庫平臺。在過去五年的發(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ā)者很可能會對這些新特征抱有濃厚的興趣,這些新特征包括新的T-SQL改進(jìn),更好的Visual Studio集成,與CLR/.NET框架的集成,以及SQL Server 2005 Management Studio應(yīng)用程序(它是SQL Server 2000的企業(yè)管理器的一個更為"平滑"的版本)。
與以前的SQL Server 2000相比, 2005中的T-SQL改進(jìn)使得編寫某些類型的查詢極為容易。在SQL Server 2005中,T-SQL語法更為精練、可讀和易于理解。
在本文中,我們將專門探討SQL Server 2005的評價函數(shù),它們大大簡化了對查詢結(jié)果進(jìn)行評價的過程。
二、 數(shù)據(jù)模型和評價結(jié)果基礎(chǔ)
在我們分析如何使用普通查詢模式之前,讓我們首先創(chuàng)建一個能夠運行這些查詢的數(shù)據(jù)模型。在本文中,我使用SQL Server 2005 Express版本來實現(xiàn)我的演示,并且包括了一個數(shù)據(jù)庫和一個ASP.NET 2.0網(wǎng)站(請參考本文相應(yīng)的完整源碼。就象Visual Studio一樣,SQL Server發(fā)行中也一同加雜了其它一些不同的版本。其中,Express版本是一個針對業(yè)余愛好者、學(xué)生等群體的免費版本。如果你下載和安裝Visual Web Developer(Visual Studio針對web開發(fā)者的Express版本),那么你可以選擇一同安裝SQL Server 2005 Express版本)。
對于本文中的示例,我們將使用一個含有產(chǎn)品、銷售人員(雇員)、顧客和訂單信息的數(shù)據(jù)庫。我們使用五個表來建模:Customers,Employees,Products,Orders和OrderItems。其中,Customers,Employees和Products表分別包含每一個顧客,雇員和產(chǎn)品信息的行記錄數(shù)據(jù)。每當(dāng)一個顧客進(jìn)行購買活動,一條新記錄被添加到Orders表中,其中的信息指示該顧客實現(xiàn)了購買、該雇員進(jìn)行的這一銷售活動及訂單的日期。其中,OrderItems映射訂單中的每一件產(chǎn)品,產(chǎn)品的數(shù)量和價格總值(假定較大的購買量可以打折)。下圖展示了這些表(及字段)以及它們之間的關(guān)系。
如圖所展示的,這個OrderItems在Orders和Products表之間建立一個對多對的連接。 |
當(dāng)構(gòu)建報告或分析數(shù)據(jù)時,用戶或管理員經(jīng)常希望看到以某種方式對數(shù)據(jù)的評價信息。例如,你的老板可能想要一個報告來顯示賣路最好的前十項,或在第三個季度銷售部中實現(xiàn)最大收入的前三名銷售人員。更復(fù)雜的情況可能是僅返回第3到第5個評價排名的銷售人員。在SQL Server 2000中,返回最高排名項的查詢可以通過使用TOP或ROWCOUNT關(guān)鍵字來實現(xiàn)。為了檢索一個特定評價子集,你需要使用一種"派生表"(或者是一種基于視圖的手段)。
SQL Server 2005中引入了四個新的評價函數(shù):ROW_NUMBER,RANK,DENSE_RANK和NTILE。盡管這些與SQL Server 2000所提供的函數(shù)相比是一個明顯的進(jìn)步,但是這些函數(shù)的使用仍然存在一些限制(要求使用派生表或視圖來實現(xiàn)功能更為強(qiáng)大的應(yīng)用程序)。下面讓我們分析一下每一個函數(shù)。
三、 使用ROW_NUMBER函數(shù)計算行數(shù)
這個ROW_NUMBER函數(shù)把一個序數(shù)值賦給每一個返回的記錄,該序數(shù)值依賴于一個特定的與這個函數(shù)一起使用的ORDER BY語句。函數(shù)ROW_NUMBER的語法是:ROW_NUMBER() OVER([partition] ORDER BY子句)。例如,下列查詢將返回從最貴的到最便宜的產(chǎn)品,對每一種產(chǎn)品按價格進(jìn)行評價:
| SELECT ProductID,Name,Price, ROW_NUMBER() OVER(ORDER BY Price DESC) As PriceRankFROM Products |
這個語句的執(zhí)行結(jié)果如下表所示:
分享:SQL Server 中易混淆的數(shù)據(jù)類型近來在做數(shù)據(jù)庫設(shè)計,有時候真弄不清SQL2000里的數(shù)據(jù)類型,所以摘了這篇文章。 摘自“藍(lán)色理想”。 (1)char、varchar、text和nchar、nvarchar、ntext char和varchar的長
相關(guān)Mssql數(shù)據(jù)庫教程:
- sql 語句練習(xí)與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個方法
- sql刪除重復(fù)數(shù)據(jù)的詳細(xì)方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數(shù)據(jù)庫,提示 無法為該請求檢索數(shù)據(jù) 錯誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲過程參數(shù)的用法實例詳解
Mssql數(shù)據(jù)庫教程Rss訂閱編程教程搜索
Mssql數(shù)據(jù)庫教程推薦
- 兩條經(jīng)典SQL語句
- 解決SQL Server數(shù)據(jù)庫占用過多內(nèi)存的方法
- SQL Server 2005數(shù)據(jù)加密技術(shù)應(yīng)用研究
- 逐行掃描 為你講解幾個基本SQLPLUS命令
- 講解數(shù)據(jù)庫調(diào)優(yōu)與程序員相關(guān)的幾個方面
- 如何在應(yīng)用環(huán)境中構(gòu)造最優(yōu)的數(shù)據(jù)庫模式
- 解讀sql中獲得部分時間的方法
- 解讀數(shù)據(jù)庫的一些常識
- SQLServer2005重建索引前后對比分析
- 談SQL Server數(shù)據(jù)庫管理常用的SQL和T-SQL語句
- 相關(guān)鏈接:
- 教程說明:
Mssql數(shù)據(jù)庫教程-探討SQL Server 2005的評價函數(shù)
。