0
以下查詢會在第一個分區集之後產生重複的row_numbers。例如,第一組fldPK = 2403和fldCIA = 1,收到以下...ROW_NUMBER()OVER PARTITION返回重複值
2403 1 1
2403 1 2
2403 1 3
2403 1 4
和第二組中的我接收...
2403 2 1
2403 2 1 <-- duplicate 1 within the same partition
2403 2 2
2403 2 3
SELECT *, 1 AS fldBF,
ROW_NUMBER() OVER (PARTITION BY fldPK, fldCIA ORDER BY fldPK) AS sCount
INTO #tmpTable
FROM V_qryCSPGA
WHERE fldPK IN(SELECT DISTINCT thePK FROM FN_qryAllDTPK())
UNION ALL
SELECT *, 1 AS fldBF,
ROW_NUMBER() OVER (PARTITION BY fldPK, fldCIA ORDER BY fldPK) AS sCount
FROM FN_qryCSGBA()
WHERE fldPK IN(SELECT DISTINCT thePK FROM FN_qryAllDTPK())
ORDER BY fldPK, fldCIA, fldNDat;
爲什麼會發生這種情況?對於每一套fldPK和fldCIA的我需要重新啓動的行號數爲1,更正確的數據會...
2403 3 1
2403 3 2
2403 3 3
2403 3 4
2403 3 5
2403 3 6
2403 3 7
2403 3 8
2403 3 9
你有一個'UNION',這就是爲什麼。兩個單獨的計數。 –
有點想通,如果我最初創建一個NULL sCount列,是否有更新?我試過了,但所有的sCount值都是1. – codingManiac
您可以在派生表中使用UNION,然後在外部查詢中使用ROW_NUMBER()。這會給現在得到重複的行賦予不同的數字(如果這就是你所需要的)。 –