Oracle SQL:LEAST() 返回多行...?
Posted
技术标签:
【中文标题】Oracle SQL:LEAST() 返回多行...?【英文标题】:Oracle SQL: LEAST() returns multiple rows...? 【发布时间】:2009-02-24 15:22:54 【问题描述】:一位同事刚刚向我提出了一个令人费解的 SQL 查询:
(基本上)
SELECT LEAST(id) FROM tableA A, tableB B WHERE a.name = b.name(+)
然而,返回的结果集列出了三个数字:
最少(id) -------------- 621 644 689
(所有都是满足查询的 ID,就好像它缺少 LEAST 函数一样)
为什么? =)
【问题讨论】:
我不懂Oracle,对b.name后面的(+)很好奇。这个语法说明了什么?外连接? (+) 表示应从外连接中的哪个表导入所有行 【参考方案1】:LEAST(x,y,...) 不是聚合函数。它仅适用于其参数。你想要的函数是 MIN(x)。
对于每条记录,您都在运行 LEAST(id),它将始终返回 id。如果您传递的参数最少,您会看到不同的结果。例如,LEAST(5,6,7) = 5
。 LEAST 总是返回其参数中最小的,而 MIN 返回每条记录中最小的。
【讨论】:
以上是关于Oracle SQL:LEAST() 返回多行...?的主要内容,如果未能解决你的问题,请参考以下文章