首页 热点资讯 义务教育 高等教育 出国留学 考研考公

在SQLSERVER中打distinct会怎样去除重复实体?

发布网友 发布时间:2022-04-26 20:07

我来回答

4个回答

懂视网 时间:2022-05-07 20:55

bitsCN.com

distinct在sqlserver中不能解决的去重问题max groupby

1:SELECT * FROM T_STANDARD_SYSTEM GROUP BY SYSTEM_ID ORDER BY SYSTEM_ID2:SELECT *,COUNT(DISTINCT system_id) FROM T_STANDARD_SYSTEM GROUP BY SYSTEM_ID ORDER BY SYSTEM_IDselect * FROM T_STANDARD_SYSTEM WHERE system_Id IN(SELECT MAX(system_id) FROM T_STANDARD_SYSTEM GROUP BY system_id)

上面第二条是解决mysql不同版本不兼容问题,第一条在某些版本中是能用的。但是不规范在sqlserver中两条都不能用。

SELECT SYSTEM_ID,MAX(SYSTEM_NAME) SYSTEM_NAME,MAX(SYSTEM_ABRIDGE) SYSTEM_ABRIDGE,MAX(SUB_SYSTEM_ID) SUB_SYSTEM_ID,MAX(SUB_SYSTEM_NAME) SUB_SYSTEM_NAME, MAX(CUSTOM_SYSTEM_ID) CUSTOM_SYSTEM_ID,MAX(CUSTOM_SYSTEM_NAME) CUSTOM_SYSTEM_NAME FROM T_STANDARD_SYSTEM GROUP BY SYSTEM_ID ORDER BY SYSTEM_ID

以上这条是解决sqlserver和mysql上面那个不兼容问题的。

Oracle提供一个rowId可以通过子查询方便的解决上述去重问题


bitsCN.com

热心网友 时间:2022-05-07 18:03

SQL SELECT DISTINCT 语句
  在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。
  关键词 DISTINCT 用于返回唯一不同的值。
语法:
  SELECT DISTINCT 列名称 FROM 表名称
编辑本段
使用 DISTINCT 关键词

  如果要从 "Company" 列中选取所有的值,我们需要使用 SELECT 语句:
  SELECT Company FROM Orders
"Orders"表:
  
IBM3532
W3School2356
Apple4698
W3School6953
结果:
  
IBM
W3School
Apple
W3School
请注意,在结果集中,W3School 被列出了两次。
  如需从 Company" 列中仅选取唯一不同的值,我们需要使用 SELECT DISTINCT 语句:
  SELECT DISTINCT Company FROM Orders
结果:
  
IBM
W3School
Apple
现在,在结果集中,"W3School" 仅被列出了一次。

热心网友 时间:2022-05-07 19:21

distinct

热心网友 时间:2022-05-07 20:55


distinct

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com