Add Auto-Increment Number on Select Statement (TSQL ) – 在SELECT Statement 上入自動遞增編號

今日繼續改善自己所寫的program
程式上有一個功能是用來打印報告的
主要是跟據 由於客戶很多的關係..
我們要打這些報告排序..
沒有那麼多報告的客戶會先Print..
但是又要打他們分Printer Group 來Print..
這是因為公司有6部Printer的關係..
所以我們要好好運用他們..
令到等待列印的時間縮短…

我之前寫的程式/SQL Insert Statement只可以做到把
總結了的資料加進Table 上..[因為我們要使用這個Table來分配Print Group]
之後人手在SQL Server Management Studio或在我寫的程式上排序

在天在自己Review 自己寫了一年多的Code 的時候..
終於想到了解決方法了
就要只要我能夠在 找到Summary 的資料時候..
可以在資料上加入一個 Auto-increment number/自動遞增編號
問題是…如何可以在 SELECT Statement上加入Row ID 呢?

公司有同是介紹我寫一個有Auto-Increment Number 的Temp Table
E.G.

DECLARE @Temp AS TABLE(RowId	INT IDENTITY(1,1), Username VARCHAR(50), City VARCHAR(100), Country VARCHAR(100) )

之後把Summary 的資料Insert 進去..便可以有Row ID了..
最後當然是做一個SELECT Statement 和DROP這個Temp table..

 

這了數分鐘.突然間想到..當初想使用SQL2008/SQL2005
是因為我們想使用SQL2005 之後推出的ROW_NUMBER 功能..

之後我便找到了解決方法

如果我們想在SELECT Statement 上加入ROW ID 我們可以 使用

ROW_NUMBER() OVER ( ORDER BY {FieldName you want to order by})

E.G.

SELECT Username, City, Country,  ROW_NUMBER() OVER ( ORDER BY Country) AS ROW_ID
FROM ShareChiWai_Table

便可以在SELECT Statement 上加入Auto Number

有關Row_Number()的使用方法可以看看以下URL
http://msdn.microsoft.com/en-us/library/ms186734.aspx
Hope you find it useful

Leave a Reply