SQL语句对某字段去重?

select prokey,classname from pro,class where pro.prokey=class.classkey
2025-03-11 04:20:22
推荐回答(5个)
回答1:

sql语句通过DISTINCT关键字去重, 用于返回唯一不同的值。DISTINCT关键字需要搭配SELECT 语句使用,语法为SELECT DISTINCT 列名称 FROM 表名称。如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的项就必须出现在选择列表中,否则会出现错误。

扩展资料:

distinct这个关键字用来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。

distinct必须放在开头,distinct语句中select显示的字段只能是distinct指定的字段,其他字段是不可能出现的。

回答2:

如果你只选prokey话可以使用distinct关键字
select distinct prokey from pro,class where pro.prokey=class.classkey
但是因为classname不同,即使使用distinct关键字:
select distinct prokey,classname from pro,class where pro.prokey=class.classkey
也会出现图中所示的结果。

回答3:

select PROKEY,listagg(classname,',') WITHIN GROUP(ORDER BY classname)
from pro,class
where pro.prokey=class.classkey
GROUP BY prokey,classname
没太懂想要什么,如果用distinct你的classname不重复也会报出的。除非你只select的prokey一个字段。
我给的是用listagg,如果有多个classname用“,”分隔,练成一条记录。可以参考试试。

回答4:

你这几行的资料都是不一样的啊 没什么重复,说 出你想要的效果吧

回答5:

使用distinct语句