首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用union all删除重复项

如何使用union all删除重复项
EN

Stack Overflow用户
提问于 2016-11-20 04:54:23
回答 3查看 8.9K关注 0票数 2

我正在读这个网站的https://www.toptal.com/sql/interview-questions

他们展示了使用联合所有删除重复项的技巧

代码语言:javascript
复制
SELECT * 
FROM mytable 
WHERE a = X 

UNION ALL 

SELECT * 
FROM mytable 
WHERE b = Y AND a != X 

上面的脚本对我来说不太清楚。假设我想从两个employee表中提取数据,但希望使用union all和where子句删除重复数据。

假设我的employee表具有ID、Name和salary之类的结构。

现在使用union all发布一个示例SQL,它将显示来自两个表的不同行。

EN

回答 3

Stack Overflow用户

发布于 2016-11-20 05:11:54

实际上,删除重复项的是UNION。假设我在一个表中有3行数据。然后使用2个联合查询。了解union和union all之间的区别。

代码语言:javascript
复制
DECLARE @Employee TABLE
(
    ID INT,
    Name VARCHAR(100),
    Salary  INT
)

INSERT @Employee VALUES
(1, 'Alice', 50000),
(2, 'Bob', 40000),
(3, 'Charlie', 60000)

SELECT ID, Name, Salary FROM @Employee WHERE Salary >= 50000
UNION
SELECT ID, Name, Salary FROM @Employee WHERE Salary >= 60000

SELECT ID, Name, Salary FROM @Employee WHERE Salary >= 50000
UNION ALL
SELECT ID, Name, Salary FROM @Employee WHERE Salary >= 60000

结果:

代码语言:javascript
复制
+----+---------+--------+
| ID | Name    | Salary |
+----+---------+--------+
| 1  | Alice   | 50000  |
| 3  | Charlie | 60000  |
+----+---------+--------+

+----+---------+--------+
| ID | Name    | Salary |
+----+---------+--------+
| 1  | Alice   | 50000  |
| 3  | Charlie | 60000  |
| 3  | Charlie | 60000  |
+----+---------+--------+
票数 3
EN

Stack Overflow用户

发布于 2018-08-19 03:17:21

代码语言:javascript
复制
create table test_a(id numeric);

create table test_b(id numeric);

insert into test_a(id) values
  (10),
  (20),
  (30),
  (40),
  (50);

insert into test_b(id) values
  (10),
  (30),
  (50);
 GO 
 select * from test_b
 union all
  SELECT * FROM(select * from test_a  
  except 
  select * from test_b) ABC
票数 2
EN

Stack Overflow用户

发布于 2019-10-24 23:47:18

UNION删除重复项。为什么不在我的表和'nothing‘之间使用它,当然结构是一样的。

下面是这句话:

代码语言:javascript
复制
select id, name from mytable 

  UNION

  select id, name from mytable 
  where 1=2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40697806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档