選擇列值不同的重複行
此資料庫查詢旨在根據特定列識別重複行,同時忽略其他列的值列。考慮以下場景:
------ ------
ARIDNR | LIEFNR |
---|---|
1 | A |
2 | A |
3 | A |
1 | B |
2 | B |
目標是選擇與不同LIEFNR數值出現多次的ARIDNR 值。
解
為了實現這一點,我們可以利用以下方法查詢:
SELECT * FROM Table WHERE ARIDNR IN ( SELECT ARIDNR FROM Table GROUP BY ARIDNR HAVING COUNT(DISTINCT LIEFNR) > 1 )
此查詢使用巢狀子查詢來識別符合指定條件的ARIDNR 值。子查詢會依 ARIDNR 對行進行分組,並套用 COUNT(DISTINCT LIEFNR) 函數,該函數計算與每個 ARIDNR 關聯的唯一 LIEFNR 值的數量。如果計數超過 1,ARIDNR 將會加入到臨時表中。
然後主查詢從原始表中選擇 ARIDNR 值與子查詢標識的值相符的所有行。這會產生所需的輸出:
; ------ ------
ARIDNR | LIEFNR |
---|---|
1 | A |
1 | B |
2 | A |
2 | B |
此方法有效捕捉具有不同LIEFNR 值的重複行,並滿足初始要求。
以上是如何找到特定列中具有不同值的重複行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!