【发布时间】:2018-03-20 04:56:03
【问题描述】:
当我在 Oracle 11g 中运行以下查询时
SELECT least(val)
FROM
(
SELECT 1 AS val
FROM dual
UNION
SELECT 2 AS val
FROM dual
UNION
SELECT 3 AS val
FROM dual
);
我期待单行,但它返回多行。请帮我看看我的理解到底哪里出了问题..
【问题讨论】:
-
你的意思是 min(),至少不是聚合函数,它用于 i.E.获取某些列的最小值:least(a,b,c)
-
重复Turo 和Tim 所说的,稍微不同的话:如果你有一个3 列100 行的表,
select least(col1, col2, col3)将返回100 行1 列;在每一行中,将返回该行中三列中最小的值。类似地(但不那么直观) -least(val)表示,FOR EACH ROW 返回单个值集合中的最小值,即该行中的val。显然,具有单个元素的集合中的“最少”就是那个元素。least(1, 3, 5)为 1;least(8)是 8!同样,least(val)只是val- 从那一行。