Oracle SQL:在语句中多次使用先前的结果

ide*_*ixs 1 sql oracle

我想实现这样的目标:

SELECT col1,col2-(SELECT foo FROM table1) 
FROM table2 
WHERE col2>(SELECT foo FROM table1)
Run Code Online (Sandbox Code Playgroud)

没有选择foo两次.

我可以使用Oracle SQL吗?它会比SELECTing两次(或多次)更有效吗?

Thi*_*ilo 6

怎么样

WITH
  foo      AS  select foo from table1
SELECT
    col1, col2 - foo.foo
FROM
    table2, foo
WHERE
   col2 > foo.foo
Run Code Online (Sandbox Code Playgroud)

  • +1明确提供WITH子句是为了在多个地方重用子查询. (2认同)