SQL语句对某字段去重?

selectprokey,classnamefrompro,classwherepro.prokey=class.classkey... select prokey,classname from pro,class where pro.prokey=class.classkey 展开
 我来答
仁昌爱娱乐
高粉答主

2019-11-14 · 专注关心娱乐
仁昌爱娱乐
采纳数:760 获赞数:459833

向TA提问 私信TA
展开全部

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

扩展资料:

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

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

苌烨用香彤
2020-07-05 · TA获得超过1031个赞
知道小有建树答主
回答量:1681
采纳率:100%
帮助的人:9.1万
展开全部
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用“,”分隔,练成一条记录。可以参考试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
咎健硕情文
2020-04-17 · TA获得超过1295个赞
知道小有建树答主
回答量:1598
采纳率:87%
帮助的人:7.5万
展开全部
如果你只选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
也会出现图中所示的结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式