在2005年11月份，微軟發行了三種新產品系列：Visual Studio 2005，SQL Server 2005和.NET架構2.0(它包括ASP.NET 2.0)。SQL Server 2005是微軟自從其上一個主要發行版本SQL Server 2000以來最新版本的資料庫平台。在過去五年的發展中，SQL Server中加入了大量的新特徵，所有這些新內容都被總結到微軟網站的一篇文章《What's New in SQL Server 2005?》中。使用SQL Server 2005作為後端資料庫構建基於web應用程式的開發人員很可能會對這些新特徵抱有濃厚的興趣，這些新特徵包括新的T-SQL改進，更好的Visual Studio整合，與CLR/.NET架構的整合，以及SQL Server 2005 Management Studio應用程式（它是SQL Server 2000的企業管理器的一個更為"平滑"的版本）。
與以前的SQL Server 2000相比， 2005中的T-SQL改進使得編寫某些類型的查詢極為容易。在SQL Server 2005中，T-SQL文法更為精練、可讀和易於理解。
在我們分析如何使用普通查詢模式之前，讓我們首先建立一個能夠運行這些查詢的資料模型。在本文中，我使用SQL Server 2005 Express版本來實現我的示範，並且包括了一個資料庫和一個ASP.NET 2.0網站（請參考本文相應的完整源碼。就象Visual Studio一樣，SQL Server發行中也一同加雜了其它一些不同的版本。其中，Express版本是一個針對業餘愛好者、學生等群體的免費版本。如果你下載和安裝Visual Web Developer（Visual Studio針對web開發人員的Express版本），那麼你可以選擇一同安裝SQL Server 2005 Express版本）。
對於本文中的樣本，我們將使用一個含有產品、銷售人員（僱員）、顧客和訂單資訊的資料庫。我們使用五個表來建模：Customers，Employees，Products，Orders和OrderItems。其中，Customers，Employees和Products表分別包含每一個顧客，僱員和產品資訊的行記錄資料。每當一個顧客進行購買活動，一條新記錄被添加到Orders表中，其中的資訊指示該顧客實現了購買、該僱員進行的這一銷售活動及訂單的日期。其中，OrderItems映射訂單中的每一件產品，產品的數量和價格總值(假定較大的購買量可以打折)。下圖展示了這些表（及欄位）以及它們之間的關係。
如圖所展示的，這個OrderItems在Orders和Products表之間建立一個對多對的串連。
當構建報告或分析資料時，使用者或管理員經常希望看到以某種方式對資料的評價資訊。例如，你的老闆可能想要一個報告來顯示賣路最好的前十項，或在第三個季度銷售部中實現最大收入的前三名銷售人員。更複雜的情況可能是僅返回第3到第5個評價排名的銷售人員。在SQL Server 2000中，返回最高排名項的查詢可以通過使用TOP或ROWCOUNT關鍵字來實現。為了檢索一個特定評價子集，你需要使用一種"派生表"（或者是一種基於視圖的手段）。
這個ROW_NUMBER函數把一個序數值賦給每一個返回的記錄，該序數值依賴於一個特定的與這個函數一起使用的ORDER BY語句。函數ROW_NUMBER的文法是：ROW_NUMBER() OVER([partition] ORDER BY子句)。例如，下列查詢將返回從最貴的到最便宜的產品，對每一種產品按價格進行評價：
這個語句的執行結果如下表所示：