我需要一个sql语句,它允许我从oracle数据库中选择整行,但是由不同的列。这是一个简化的数据库:
Project_Num Title Category
0 Project 1 Admin
0 Project 1 Development
1 Project 2 Admin
2 Project 3 Development
我需要我的语句才能返回以下结果集:
0 Project 1 Admin
1 Project 2 Admin
2 Project 3 Development
因此,每个项目都会根据其project_num和title是否唯一而返回。如果一个项目有2个以上的类别不同的条目,我只需要选择一次该项目(我为该项目选择的条目无关紧要。)
有人可以帮我吗?
答案 0 :(得分:6)
SELECT Project_Num, Title, MIN(Category) AS Category
FROM MyTable
GROUP BY Project_Num, Title;
答案 1 :(得分:2)
您是否需要在结果集中包含“类别”列?
如果没有,那么你可以使用:
SELECT DISTINCT Project_Num, Title
FROM MyTable
答案 2 :(得分:2)
SELECT *
FROM (SELECT DISTINCT YourDistinctField FROM YourTable) AS A
CROSS APPLY
( SELECT TOP 1 * FROM YourTable B
WHERE B.YourDistinctField = A.YourDistinctField ) AS NewTableName
我一直在努力解决这个问题几个小时,我尝试了许多无效的解决方案,最后通过搜索“加入前1”并调整我找到的独特搜索解决方案来获得它。