我有一张看起来像的桌子
╔══════╦══════╦═══════╦═══════╦═══════╦═══════════════════╗
║ Key1 ║ Key2 ║ Data1 ║ Data2 ║ Data3 ║ DataNotImportant4 ║
╠══════╬══════╬═══════╬═══════╬═══════╬═══════════════════╣
║ Foo ║ Bar ║ 1 ║ 2 ║ a ║ 4 ║
║ Foo ║ Bar ║ 1 ║ 2 ║ a ║ 5 ║
║ Foo ║ Bar ║ 1 ║ 2 ║ b ║ 4 ║
║ Foo ║ Test ║ 1 ║ 2 ║ f ║ 4 ║
╚══════╩══════╩═══════╩═══════╩═══════╩═══════════════════╝
现在我将选择 Key1 和 Key2 的组合,其中 Data1 Data2 Data3 不同,所以在这里我会得到 Foo Bar 作为结果,因为 Data3 在所有行中都不相同。我怎样才能在没有光标的情况下归档它?数据库是 SQL Server 2008
目前我使用游标。我使用 group by 选择所有组合键并遍历列表,并使用从光标获得的键在我的字段上通过 select 进行分组。问题是当有太多行时它变得非常慢。所以我寻找一个基于集合的解决方案。