将ID列添加到查询结果中

时间:2016-07-27 14:19:32

标签: sql sql-server tsql

这是我第一次询问有关T-SQL的问题,我是初学者。我有一个SQL查询,它由两个CTE组成,过滤到少于10行。我使用SUM语句来获得总计:

Sum(Diff) OVER(ORDER BY DateAdded) AS Summary

DateAdded对于多行具有相同的值。因此,它不会给我每行的总计。我需要创建一个简单计算行数的字段(类似于DB表中的PK),因此我可以将它用于我的ORDER BY子句。如果我的理解是正确的,那么我需要做的就是让它发挥作用。如何将枚举列添加到查询结果集?请注意,我不想ALTER表,只需在查询结果中添加一列。我希望我写的很清楚。谢谢!

3 个答案:

答案 0 :(得分:2)

您可以使用row_number(),而不是使用count()sum(),它会为结果集中的每一行提供从1开始的不同行号:

SELECT ROW_NUMBER() OVER (ORDER BY dateAdded) as Summary

答案 1 :(得分:0)

试试这个:

DECLARE @Result TABLE
(
    DT DATETIME
)
INSERT INTO @Result SELECT '1 Jan 1900'
INSERT INTO @Result SELECT '1 Jan 1900'

SELECT ROW_NUMBER() OVER(ORDER BY DT DESC) AS "Row Number", DT
FROM @Result

答案 2 :(得分:-1)

我相信您只需将NEWID()添加到ORDER BY

即可
SELECT SUM(diff) OVER (ORDER BY DateAdded, NEWID()) AS Summary