Select 语句 returns 错误的结果

Select Statement returns wrong results

我有一个 returns 多列的子查询,里面有 row_number

当我尝试 select 只有两列时,它 returns 行号列中的错误结果

结果应该是

CheckKey RowNum
1936 66
1936 81

但是 returns

CheckKey RowNum
1936 66
1936 76

这是查询:

SELECT Z."CheckKey", Z."RowNum" FROM
                (SELECT 
                  X."Transaction Number", 
                  X."Debit", 
                  X."Credit", 
                  X."Balance", 
                  X."CardName", 
                  X."Memo", 
                  X."CheckNum",
                  X."CheckSum", 
                  X."Canceled", 
                  X."Account", 
                  X."RefDate", 
                  X."DueDate", 
                  X."CheckKey",
                  row_number() OVER (ORDER BY X."RefDate" DESC) "RowNum", 
                  CASE
                    WHEN (
                      X."StornoToTr" IS NOT NULL
                      AND X."Deposited" = 'C'
                    ) THEN 'Deposited'
                    WHEN X."Deposited" = 'N' THEN 'Canceled'
                    ELSE X."Status"
                  END "Status"
                FROM CheckKeys X)Z
            WHERE Z."CheckKey" = '1936'

正如asentx所说 仅按 RefDate 排序,因此 RefDate 的相同值按随机顺序排序。这就是为什么当我按“交易编号”之类的顺序添加另一列时结果变得稳定的原因

谢谢大家