sql - 如何从两个表的 UNION 中清除重复值?
问题描述
我会很感激一点帮助!
真正的代码在所有条件下看起来都更丑陋,所以这应该足够了:
SELECT
Column1 AS FIRST_COL,
Column2 AS SECOND_COL,
Column3 AS THIRD_COL,
Column4 AS FOURTH_COL,
Phone AS PHONE,
Column6 AS SIXTH_COl,
FROM Standard_Table
WHERE Column01 = 'xy01'
UNION ALL
SELECT
FIRST_COL,
SECOND_COL,
THIRD_COL,
FOURTH_COL,
PHONE,
SIXTH_COL,
FROM Special_Table
WHERE COLUMN01 = 'xy'
问题是我想根据他们的电话号码(PHONE 列)摆脱重复的用户。一些用户在两个表中,但他们的记录在表中不一致,因此 DISTINCT 不起作用。
最好的方法是什么?
解决方案
希望这对你有用
; WITH PartionedData AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY PHONE ORDER BY FIRST_COL) RowNum
FROM (
SELECT
Column1 AS FIRST_COL,
Column3 AS THIRD_COL,
Column4 AS FOURTH_COL,
Phone AS PHONE,
Column6 AS SIXTH_COl,
FROM Standard_Table
WHERE Column01 = 'xy01'
UNION ALL
SELECT
FIRST_COL,
SECOND_COL,
THIRD_COL,
FOURTH_COL,
PHONE,
SIXTH_COL,
FROM Special_Table
WHERE COLUMN01 = 'xy' AND
PHONE NOT IN (
SELECT Phone
FROM Standard_Table
) CombinedData
)
SELECT
FIRST_COL,
THIRD_COL,
FOURTH_COL,
PHONE,
SIXTH_COl,
FROM PartionedData
WHERE RowNum = 1
推荐阅读
- php - 类别中计数帖子的php循环错误
- javascript - 在使用 React 缩放多个组件的同时提高性能
- sql-server - 在 SQL 中查询列标题数据
- laravel - 尝试在 laravel 中建立关系时出错
- python - 在 pygame 上验证 Pong 碰撞逻辑
- c# - 如何使用参数从 Lua / MoonSharp 脚本调用和等待异步 C# 方法?
- tokenize - 有没有办法获取在 BERT 中生成某个令牌的子字符串的位置?
- c++ - free():在 tcache 2 中检测到双重空闲
- javascript - 在两个文件中使用两个 MVC 模型
- angular - EventEmitter 没有在 Angular 9 中发射对象