如何防止在选择查询中选择重复的行?
我有一个包含以下字段的表:
我的查询要求我仅在前端用户输入的某个时间选择特定用户的数据。假设用户输入1,则select查询应仅检索user1的数据。
我目前正在这样做:
select name,type,date from table1 order by user1;
但是我得到的结果是多余的行?
我做错了什么?如何避免这些重复的行?
请帮忙…
您有两个选择SELECT DISTINCT或使用GROUP BY子句。您还具有日期列,在Oracle中这也意味着有时间,因此为了安全起见,应截断日期列。即使您知道时间也不会被插入截断。优良作法是,当您看到日期时,就认为它有时间。
您将遇到的下一个问题是,您不能在不属于SELECT的列上使用ORDER BY。
我的建议是GROUP BY。
SELECT user1, name, type, TRUNC(date) date FROM Table1 GROUP BY user1, name, type, TRUNC(date) ORDER BY user1