我正在使用Oracle上的数据库,我有一个表,它不包含任何主键,外键或任何类型的键,但它有一个包含不同值的列。这些值在许多记录中重复,我希望SQL查询检索记录但不超过一次。这是表格:
姓名
迈克尔法拉第 斯蒂芬霍金 迈克尔法拉第 罗伯特胡克 迈克尔法拉第Nikola Tesla
Nikola Tesla
斯蒂芬霍金Thomas Edison
Abdus Salam
斯蒂芬霍金 迈克尔法拉第Alan Turing
罗伯特胡克 阿尔伯特爱因斯坦Nikola Tesla
答案 0 :(得分:4)
尝试从TABLENAME中选择DISTINCT名称
答案 1 :(得分:0)
有两种选择。即使输出相同,性能实际上也可能因数据量和您使用的数据库类型而异。
如果您有大数据集,请尝试使用两种方法来查看哪种方法效果最佳。
选项#1
SELECT DISTINCT column_name
FROM table_name
选项#2
SELECT column_name
FROM table_name
GROUP BY column_name
此外,在这种情况下,您可能希望对结果进行排序。通常,在数据库服务器上处理排序比在客户端执行排序更有效。您应该添加ORDER BY子句来获取它。
见下面的例子:
选项#1
SELECT DISTINCT column_name
FROM table_name
ORDER BY column_name;
选项#2
SELECT column_name
FROM table_name
GROUP BY column_name
ORDER BY column_name;