oraclesql中的顺序比较
我有两张桌子,t1,t2 例如: t1是这样的:oraclesql中的顺序比较,sql,oracle,Sql,Oracle,我有两张桌子,t1,t2 例如: t1是这样的: ID Ordinal 1 1 2 2 3 3 4 4 ID Ordinal 1 1 2 3 3 5 4 6 ID Ordinal 1 1 2 5 3 3 4 6 t2是这样的: ID Ordinal 1 1 2 2 3 3 4 4 ID Ordinal 1 1 2 3 3 5 4 6 ID Ordinal 1 1
ID Ordinal
1 1
2 2
3 3
4 4
ID Ordinal
1 1
2 3
3 5
4 6
ID Ordinal
1 1
2 5
3 3
4 6
t2是这样的:
ID Ordinal
1 1
2 2
3 3
4 4
ID Ordinal
1 1
2 3
3 5
4 6
ID Ordinal
1 1
2 5
3 3
4 6
在这个场景中,当我对序号进行比较时,我希望返回顺序不变,因为如果仔细观察,这两个表的实际顺序不会改变
但在这种情况下:
t2是这样的:
ID Ordinal
1 1
2 2
3 3
4 4
ID Ordinal
1 1
2 3
3 5
4 6
ID Ordinal
1 1
2 5
3 3
4 6
我希望看到结果
ID 2和3由T1更改
有什么想法吗
谢谢
列表项
试试这个:
SELECT T2.ID
FROM (SELECT ID, ROW_NUMBER() OVER (ORDER BY Ordinal) AS rn FROM T1) T1
JOIN (SELECT ID, ROW_NUMBER() OVER (ORDER BY Ordinal) AS rn FROM T2) T2
ON T1.ID = T2.ID
WHERE T1.rn <> T2.rn
试试这个:
SELECT T2.ID
FROM (SELECT ID, ROW_NUMBER() OVER (ORDER BY Ordinal) AS rn FROM T1) T1
JOIN (SELECT ID, ROW_NUMBER() OVER (ORDER BY Ordinal) AS rn FROM T2) T2
ON T1.ID = T2.ID
WHERE T1.rn <> T2.rn
请尝试使用以下查询:
SELECT a.ID, a.Ordinal, b.Ordinal
FROM (
SELECT t1.*, rownum rnm
FROM t1
ORDER BY Ordinal
)a,
(
SELECT t2.*, rownum rnm
FROM t2
ORDER BY Ordinal
)b
WHERE a.ID = b.ID
-- AND a.rnm <> b.rnm //This deosn't work
AND a.Ordinal <> b.Ordinal
编辑:更新查询以返回所需的结果集尝试使用以下查询:
SELECT a.ID, a.Ordinal, b.Ordinal
FROM (
SELECT t1.*, rownum rnm
FROM t1
ORDER BY Ordinal
)a,
(
SELECT t2.*, rownum rnm
FROM t2
ORDER BY Ordinal
)b
WHERE a.ID = b.ID
-- AND a.rnm <> b.rnm //This deosn't work
AND a.Ordinal <> b.Ordinal
编辑:更新查询以返回所需的结果集谢谢Jay,更新查询以返回正确的结果集。无意冒犯,但我想你误解了我的问题…你能再看一次我的问题吗?非常感谢你的帮助,很好。我很想知道我的第一个查询出了什么问题,因此尝试了另一种方法。谢谢Jay,更新了查询以返回正确的结果集。无意冒犯,但我想你误解了我的问题…你能再看一次我的问题吗?非常感谢你的帮助,很好。我很想知道我的第一个问题出了什么问题,因此我尝试了另一个选择。