鏈接回原始表格很大程度上取決於導致訂單的表格中的內容。讓說你有一個日期字段或序列字段和你想的最小值...
在這個例子中,我假設seqField是行唯一
然後,它看起來是這樣的:
--drop table #test
SELECT 1 as seqField, 1 as id1, 2 as id2
INTO #test
UNION ALL
SELECT 2,2,1
UNION ALL
SELECT 3,3,4
UNION ALL
SELECT 4,4,1
UNION ALL
SELECT 5,4,3
UNION ALL
SELECT 6,1,4
UNION ALL
SELECT 7,10,20;
WITH norm AS
(
SELECT CASE WHEN id1 > id2 THEN id1 ELSE id2 END as a,
CASE WHEN id1 < id2 THEN id1 ELSE id2 END as b, *
FROM #test
), setList AS
(
SELECT DISTINCT a, b, min(seqField) as s
FROM norm
GROUP BY a, b
)
SELECT #test.*
FROM #test
JOIN setList ON #test.seqField = setList.s
這給
seq id1 id2
1 1 2
3 3 4
4 4 1
7 10 20
由於sqlchan指出seqField可以%%physloc%%
更換,如果你沒有一個現有的列使用。
你想達到的結果集是什麼?這個問題並不清楚。 – aleroot
你是什麼意思的「每個」的頂部? – pinaldesai
我已經更新了這個問題 – bliof