sql 查询时如何去掉重复的部分写在where中
3个回答
展开全部
你说的重复是指两条记录完成一样么,如果是则用
SELECT DISTINCT COLUMN1,COLUMN2
FROM TABLE1
或
SELECT COLUMN1,COLUMN2
FROM TABLE1
GROUP BY COLUMN1,COLUMN2
若你要查询出来的字段在两条记录中有不同值,可以用MAX()
或者可以根据你自己的要求进行排重,如下:
SELECT *
FROM (
SELECT A.*,ROW_NUMBER() OVER(PARTITION BY ID ORDER BY ID) RN
--按ID进行归类,ORDER BY 按你自己的需要确定怎 样的记录在前面,怎样的记录在后面,因为最后的限制条件是RN = 1
FROM TABLE1 A
)
WHERE RN = 1
SELECT DISTINCT COLUMN1,COLUMN2
FROM TABLE1
或
SELECT COLUMN1,COLUMN2
FROM TABLE1
GROUP BY COLUMN1,COLUMN2
若你要查询出来的字段在两条记录中有不同值,可以用MAX()
或者可以根据你自己的要求进行排重,如下:
SELECT *
FROM (
SELECT A.*,ROW_NUMBER() OVER(PARTITION BY ID ORDER BY ID) RN
--按ID进行归类,ORDER BY 按你自己的需要确定怎 样的记录在前面,怎样的记录在后面,因为最后的限制条件是RN = 1
FROM TABLE1 A
)
WHERE RN = 1
展开全部
SELECT DISTINCT COLNAME FROM TABNAME;
SELECT COLNAME FROM TABNAME GROUP BY COLNAME;
SELECT COLNAME FROM (SELECT COLNAME, row_number() over(PARTITION BY COLNAME order by COLNAME desc) AS rn FROM TABNAME ) WHERE rn = 1 ;
这些都是可以去重的。第3个是可以按某个字段的排序去重
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select A DISTINCT FROM TABLE
DISTINCT 就是用来去除重复行的.不需要在where里面特别写什么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询