【问题标题】:Convert OUTER APPLY To Oracle 11g statement将 OUTER APPLY 转换为 Oracle 11g 语句
【发布时间】:2020-06-28 15:11:03
【问题描述】:

我有以下 TSQL,

select 2*EC.Total C1, T1.C2, EC.Total
FROM MyTable1 T1 
OUTER APPLY (select COUNT(*) AS Total from MyTable2 T2 WHERE T1.SomeColumn=T2.SomeColumn ) EC
ORDER BY EC.Total desc

我需要将其转换为 Oracle 11g。我试过横向但不支持。

【问题讨论】:

  • 我无法在交叉连接中访问 T1?因为它说的标识符无效

标签: sql sql-server oracle tsql lateral-join


【解决方案1】:

你真的不需要横向连接:

select 2*EC.Total C1, T1.C2, EC.Total
FROM MyTable1 T1 
  LEFT JOIN (
    select m2.somecolumn, COUNT(*) AS Total 
    from MyTable2 m2
    group by m2.somecolumn
  ) ec ON t1.somecolumn = ec.somecolumn
ORDER BY EC.Total desc

【讨论】:

    猜你喜欢
    • 2022-11-13
    • 2019-02-11
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多