关于如何删除左外连接中的重复记录,关于SO有很多问题 . 我在这两个表Table1和Table2之间有一个简单的左外连接,其中Table1与Table2有一对多的关系(我在这里直接写了这个简单的查询只是为了解释我在追求的内容并且它不是实际的查询),
SELECT a.ID, a.Name, b.Value
FROM Table1 a
LEFT OUTER JOIN Table2 b ON a.ID == b.Table1_ID
现在返回这样的结果,
ID Name Value
1 Test1 TestValue1
1 Test1 TestValue2
1 Test1 TestValue3
1 Test1 NULL
2 Test2 TestValue4
2 Test2 NULL
2 Test2 TestValue5
现在这个输出是正确的,我知道这是一个正确的行为 . 但是有什么方法可以获得以下输出 . 这可能很简单,但我之前没有这样做,每次我搜索我遇到问题的解决方案和线程要求删除重复项 . 我不想删除重复项 . 只想在下面显示Table1中的值,
ID Name Value
1 Test1 TestValue1
TestValue2
TestValue3
NULL
2 Test2 TestValue4
NULL
TestValue5
2 回答
您可以使用
ROW_NUMBER
确定相关值中的第一行:将
ORDER BY (SELECT NULL))
替换为您希望ROW_NUMBER
所在的列 .通常,这种类型的数据处理将在应用程序层中完成 . 您可以在数据库中执行此操作,但这不是一个好主意 . SQL结果集是无序的,除非您明确拥有
order by
.