在我们正在迁移的基于Oracle的应用程序中发现以下内容:

SELECT
    Table1.Category1,
    Table1.Category2,
    count(*) as Total,
    count(Tab2.Stat) AS Stat
FROM Table1, Table2
WHERE (Table1.PrimaryKey = Table2.ForeignKey(+))
GROUP BY Table1.Category1, Table1.Category2

(+)在WHERE子句中起什么作用?我以前从没见过这样用过.

推荐答案

根据"="的哪一侧,(+)表示左外连接或右外连接(在本例中,它是左外连接).这是一种古老的Oracle语法,有时最先学习它的人更喜欢它,因为他们喜欢它使代码更短.

不过为了可读性,最好不要使用它.

Sql相关问答推荐

SQL Google Sheets:UNIQUE/DISTINCT和编码查询函数

如果开始期间不存在PostgresSql回填数据

Django将字符串筛选为整数?

NULL-生成的列中连接的字符串的输入

如果多行科目有一行在指定的日期范围内,如何 Select 该科目在该日期之前的所有行?

如何根据行状态设置正确的标志

在PostgreSQL中汇总连接表中的 case 值

带日期函数的复合索引不允许只扫描索引吗?

如何使用聚合连接两个表

根据日期 Select ID 的上一条记录

除了风格之外,还有什么理由更喜欢简单的CASE WHEN而不是搜索呢?

如何使用 join 和 where 子句从另一表中仅删除一个表中的值

如何在 postgres 中旋转某些数据字段

如何从一张表中获取值在至少三行相同的记录

如何优化仅返回符合条件的三条记录的查询?

如何根据与 BigQuery 中另一个表的匹配更新一个表中的列?

具有日期时间条件的存储过程

As400 (IBM i) SQL 表 QSYS2.SYSTABLES 上的元数据

如何使用 pg-promise 创建要在复杂的 sql 查询中使用的 VALUES 列表?

来自 SQL Server 的树层次 struct 图的 JSON