小编Kos*_*osz的帖子

ORDER BY upper(...)与UNION给我带来问题

我在弄清楚为什么遇到这个问题时遇到了一些麻烦.

此代码完全适用于它应该如何工作.它结合了两个表(MESSAGES和MESSAGES_ARCHIVE)并正确排序.

SELECT * FROM ( 
    SELECT rownum as rn, a.* FROM ( 
        SELECT  
        outbound.FROM_ADDR, outbound.TO_ADDR, outbound.EMAIL_SUBJECT

        from MESSAGES outbound 
        where (1 = 1) 

        UNION ALL

        SELECT  
        outboundarch.FROM_ADDR, outboundarch.TO_ADDR, outboundarch.EMAIL_SUBJECT

        from MESSAGES_ARCHIVE outboundarch 
        where (1 = 1)  

        order by FROM_ADDR DESC 
    ) a 
) where rn between 1 and 25
Run Code Online (Sandbox Code Playgroud)

但是,此代码不起作用.

SELECT * FROM ( 
    SELECT rownum as rn, a.* FROM ( 
        SELECT  
        outbound.FROM_ADDR, outbound.TO_ADDR, outbound.EMAIL_SUBJECT

        from MESSAGES outbound 
        where (1 = 1) 

        UNION ALL

        SELECT  
        outboundarch.FROM_ADDR, outboundarch.TO_ADDR, outboundarch.EMAIL_SUBJECT

        from …
Run Code Online (Sandbox Code Playgroud)

sql oracle sql-order-by union-all oracle-sqldeveloper

5
推荐指数
1
解决办法
6513
查看次数