gpt4 book ai didi

SQL - 查找两个表的行顺序差异

转载 作者:行者123 更新时间:2023-12-04 07:05:01 26 4
gpt4 key购买 nike

我有两个 ID 和日期表,我想按日期对两个表进行排序并查看那些顺序不同的 ID

例如
表格1

id   |  date
------------
A 01/01/09
B 02/01/09
C 03/01/09

表_2
id   |  date
------------
A 01/01/09
B 03/01/09
C 02/01/09

并得到结果
 B
C

现在诚然,我可以通过查询转储订单的结果并比较它们,但我想知道是否有一种 SQL-y 方式来获得相同的结果。

编辑以澄清,表格之间的日期不一定相同,只是为了确定订单

谢谢

最佳答案

如果日期在 TABLE_1 中不同和 TABLE_2 ,您将必须按照他们的排名加入两个表。举个例子:

SQL> WITH table_1 AS (
2 SELECT 'A' ID, DATE '2009-01-01' dt FROM dual UNION ALL
3 SELECT 'B', DATE '2009-01-02' FROM dual UNION ALL
4 SELECT 'C', DATE '2009-01-03' FROM dual
5 ), table_2 AS (
6 SELECT 'A' ID, DATE '2009-01-01' dt FROM dual UNION ALL
7 SELECT 'C', DATE '2009-01-02' FROM dual UNION ALL
8 SELECT 'B', DATE '2009-01-03' FROM dual
9 )
10 SELECT t1.ID
11 FROM (SELECT ID, row_number() over(ORDER BY dt) rn FROM table_1) t1
12 WHERE (ID, rn) NOT IN (SELECT ID,
13 row_number() over(ORDER BY dt) rn
14 FROM table_2);

ID
--
B
C

关于SQL - 查找两个表的行顺序差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1243936/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com