SQL语句对某字段去重?


select prokey,classname from pro,class where pro.prokey=class.classkey

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

扩展资料:

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

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


如果你只选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
也会出现图中所示的结果。
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用“,”分隔,练成一条亏贺桥记录。可以参考试试。
你这几行的资料都是不一样的啊 没什么重复,说 出你想要的效果吧
使用distinct语句