SQL语句对某字段去重?
selectprokey,classnamefrompro,classwherepro.prokey=class.classkey...
select prokey,classname from pro,class where pro.prokey=class.classkey
展开
3个回答
展开全部
sql语句通过DISTINCT关键字去重, 用于返回唯一不同的值。DISTINCT关键字需要搭配SELECT 语句使用,语法为SELECT DISTINCT 列名称 FROM 表名称。如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的项就必须出现在选择列表中,否则会出现错误。
扩展资料:
distinct这个关键字用来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。
distinct必须放在开头,distinct语句中select显示的字段只能是distinct指定的字段,其他字段是不可能出现的。
展开全部
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用“,”分隔,练成一条记录。可以参考试试。
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用“,”分隔,练成一条记录。可以参考试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你只选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
distinct
prokey
from
pro,class
where
pro.prokey=class.classkey
但是因为classname不同,即使使用distinct关键字:
select
distinct
prokey,classname
from
pro,class
where
pro.prokey=class.classkey
也会出现图中所示的结果。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询