2013-03-07 46 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