你如何使用MINUS在查询中进行ORDER BY?

lad*_*kie 5 oracle sql-order-by

我想查询ORDER BY结果MINUS.

我的第一次尝试不起作用:

SELECT *
FROM Table1
MINUS
SELECT *
FROM table2
WHERE table2.foo = 'bar'
ORDER BY foo
Run Code Online (Sandbox Code Playgroud)

你会怎么做?

哎呀:我做ORDER BY table2.foo的不仅仅是ORDER BY foo.现在它有效.

cas*_*son 8

但是,要回答您的问题,您可以使用with查询:

with tmp_minus as (
    SELECT *
    FROM Table1
    MINUS
    SELECT *
    FROM table2
    WHERE table2.foo = 'bar'
) 
select * from tmp_minus 
ORDER BY foo
Run Code Online (Sandbox Code Playgroud)

您还应该能够进行子选择:

select * from (
    SELECT *
    FROM Table1
    MINUS
    SELECT *
    FROM table2
    WHERE table2.foo = 'bar'
) tmp_minus 
ORDER BY foo
Run Code Online (Sandbox Code Playgroud)