我需要从多列组合的表中找到重复的记录,并在gridView中的其他列中显示“Y”作为重复记录。
为了说明:
Table A:
ID, Col1 , Col2, Col3 , Col4, Col5, Col6, Col7, Col8, Col9
1, AVal1, AVal2, AVal3, AVal4, AVal5, AVal6, AVal7, AVal8, AVal9
2, AVal10, AVal11, AVal3, AVal4, AVal5, AVal6, AVal12, AVal13, AVal14
3, AVal15, AVal15, AVal3, AVal4, AVal5, AVal6, AVal16, AVal17, AVal18
Table B
ID, Col1, Col2, Col3我需要识别表A中关于(Col3,Col4,Col5,Col6)组合的重复记录
当我从表A中选择记录时,我应该得到RowID 1的重复'N‘和RowID 2和3的'Y’。
Select A.Col1,A.Col3, A.Col4, A.Col6, 'Y / N' AS [Duplicate], B.Col2
FROM A
LEFT JOIN B
ON A.ID = B.ID我尝试使用GroupBy和分区,但我还有其他列也要被选中,但在GroupBy子句中不能使用whihc。
(预先谢谢:)
发布于 2020-10-08 15:05:44
我想你想要row_number()
select t.*,
(case when row_number() over (partition by col3, col4, col5, col6 order by col1) = 1
then 'N' else 'Y'
end) as flag
from t;https://stackoverflow.com/questions/64265297
复制相似问题