簡體   English   中英

Oracle SQL中的訂單比較

[英]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更改。

有什么想法嗎?

謝謝!

  1. 項目清單

嘗試這個:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM