2013-03-07 22 views
4

我將如何動態地在類似這樣的查詢行數:在SELECT語句中動態地編號不同的SQL行

Select distinct name from @table where %rules 

當我添加ROW_NUMBER()OVER()我失去了我的獨特性質,以及它的每一個返回表中的元素,具有唯一的行號。

Select distinct ROW_NUMBER OVER(order by name), name from @table where %rules 

我不想創建一個臨時表,否則我會爲臨時表創建一個主鍵並讓它插入行號。

在此先感謝!

回答

4

像這樣使用。

select ROW_NUMBER() OVER(order by name), * from 
(Select distinct name from @table where %rules) as mytable 
+1

http://sqlfiddle.com/#!6/c33c4/1 – 2013-03-07 20:40:57

+0

太棒了它的工作,謝謝!這是一個簡單的解決方案。 – Subliminy 2013-03-07 20:48:36

+1

或CTE版本,如果人們更喜歡語法:) http://sqlfiddle.com/#!6/c33c4/3 – 2013-03-07 20:50:07