[英]Order Comparison in Oracle SQL
我有兩個表,t1,t2。
例如:t1是這樣的:
ID Ordinal
1 1
2 2
3 3
4 4
t2是這樣的:
ID Ordinal
1 1
2 3
3 5
4 6
在這種情況下,當我對序數進行比較時,我想將訂單作為“無變化”返回,因為如果仔細觀察,這兩個表的實際順序不會改變。
但是在這樣的場景中:t2是這樣的:
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 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
編輯:更新了查詢以返回所需的結果集
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.