SQL Server 2008视图的行号,其中的数字不受where子句的影响
我有许多行的视图,也可能有多个确切的行。我已经尝试使用ROW_NUMBER()OVER(ORDER BY col1)作为row_id,但遇到了问题:
当使用JOIN或WHERE子句时,row_ids会动态调整为新的结果集。我需要的是row_id来表示row_id值,该值是在视图中为该行给出的,没有任何JOIN或WHERE子句。
任何想法?
编辑:我添加了一个例子,应该在发布之前完成它。
没有WHERE子句:
SELECT ROW_NUMBER()OVER(ORDER BY COL1)作为ROW_ID,因此*
FROM
(选择 '亚当' COL1' West'col2
UNION ALL
SELECT'Adam'col1,'Cole'col2
UNION ALL
选择 '亚当' COL1, '西方' COL2
UNION ALL
选择 '丹尼' COL1, '西方' COL2)导致
结果:
row_id col1 col2
1 Adam Cole
2 Adam West
3 Adam West
4 Danny West
现在,当我使用WHERE子句
SELECT ROW_NUMBER()OVER(ORDER BY col1)as row_id,result。*
FROM
(选择 '亚当' COL1, '西方' COL2
UNION ALL
选择 '亚当' COL1 '科尔' COL2
UNION ALL
SELECT '亚当' COL1, '西方' COL2
UNION ALL
选择 '丹尼' COL1, '西方' COL2)导致
WHERE COL2 = '西'
结果:
row_id col1 col2
1 Adam West
2 Adam West
3 Danny West
期望的结果:
row_id col1 col2
2 Adam West
3 Adam West
4 Danny West
请发表您的表结构,一些示例数据和预期的结果。 – Taryn 2013-03-21 10:58:46