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