原文地址:oracle中的 greatest,least函数(转)作者:iforit
已知表TB的数据如下
SQL> select * from tb;
ID CHINESE MATH ENGLISH
---------- ---------- ---------- ----------
1001 89 98 87
1002 81 87 79
现在要得到如下的结果,该怎么 来解决
ID CHINESE MATH ENGLISH MAX MIN
---------- ---------- ---------- ---------- ---------- ----------
1001 89 98 87 98 87
1002 81 87 79 87 79
想 了半天也没想到啥好办法,首先自然而然想到用MAX和MIN函数,但是显然这两个是聚集函数,是要作用在同一个column的一个Group上面的,而现 在要得到的MAX和MIN的值却是作用于每一行上面的,如果要借助于MAX()和 MIN()的话,还需要对原表的数据结构进行下处理(先进行转列操作 unpivot),但是显然不是很好。
解决方式如下
SQL> SELECT id, chinese, math, english,
2 greatest(chinese, math, english) max,
3 least(chinese, math, english) min
4 FROM tb;
ID CHINESE MATH ENGLISH MAX MIN
---------- ---------- ---------- ---------- ---------- ----------
1001 89 98 87 98 87
1002 81 87 79 87 79
相关推荐
Oracle数据库中的`GREATEST`和`LEAST`函数是两个非常实用的工具,它们能够帮助我们快速地在多个表达式或列之间找到最大值或最小值。这两个函数在处理多列数据比较时,提供了简洁的解决方案,尤其在不需要进行复杂的...
- Oracle使用`LEAST`函数,SQL Server使用`MIN`函数,类似地,`MIN`主要用于聚合查询。 - 示例:Oracle中`SELECT LEAST(1, -2, 4, 3) FROM DUAL`;SQL Server中`SELECT MIN(value) FROM (VALUES (1), (-2), (4), ...
7. LEAST函数:返回参数列表中的最小值。 8. NVL函数:用于将NULL值转换为指定的值。 9. UID函数:返回Oracle数据库的内部唯一标识。 10. USER函数:返回当前用户的名字。 11. USERENV函数:返回当前用户环境的信息...
- GREATEST和LEAST找出两个或更多值中的最大值或最小值。 4. **聚合函数与分析函数**: - 分组函数如COUNT、SUM、AVG、MAX、MIN在GROUP BY子句中使用,对分组数据进行计算。 - 分析函数如ROW_NUMBER、RANK、...
- Oracle中使用`GREATEST()`函数。 19. **求集合最小值** - SQLServer中使用`MIN()`函数。 - Oracle中使用`LEAST()`函数。 20. **处理NULL值** - SQLServer中使用`ISNULL()`函数。 - Oracle中使用`NVL()`函数...
本文将深入探讨Oracle中的数字处理函数,帮助你更好地理解和利用这些功能强大的工具。 1. **ROUND() 函数** ROUND() 用于四舍五入数字到指定的小数位数。例如,`ROUND(123.456, 2)` 将返回 `123.46`。你可以指定...
- **SQL Server**与**Oracle**: 分别使用`MAX()`和`MIN()`函数,但在Oracle中可以使用`GREATEST()`和`LEAST()`函数来同时比较多个值。 16. **处理NULL值** - **SQL Server**: 使用`ISNULL()`函数。 - **Oracle**...
- **最大/最小字符串**: Oracle中的`GREATEST`和`LEAST`函数用于找出一组字符串中的最大值和最小值,而SQL Server中没有直接对应的函数。 #### 日期函数 日期函数对于处理时间和日期非常重要。下面是一些Oracle和...
- GREATEST/LEAST:返回一组值中的最大值/最小值。 6. **聚合函数**: - COUNT:计算行数。 - SUM:计算数值列的总和。 - AVG:计算平均值。 - MAX/MIN:找到数值列的最大值/最小值。 7. **转换函数**: - ...
6. LEAST函数:返回一组表达式中的最小值。 以上总结的函数可以根据实际开发需求,灵活运用在SQL查询、存储过程、触发器等Oracle数据库对象中,用以处理数据和控制程序流程。掌握这些函数的使用方法是Oracle数据库...
下面将详细对比Oracle与SQL Server中的关键函数,帮助用户在不同DBMS间进行有效的转换。 ### 数学函数 1. **绝对值函数** - Oracle: 使用`ABS`函数。 - SQL Server: 同样使用`ABS`函数。 - 示例:`SELECT ABS(-...
- `GREATEST/LEAST`:返回一组值中的最大值或最小值。 6. **聚合函数**: - `COUNT`:计算行数。 - `SUM`:计算数值列的总和。 - `AVG`:计算平均值。 - `MAX/MIN`:找到列的最大值或最小值。 - `GROUP_BY`:...
- **最大值**:SQL Server 用 `MAX()` 对集合求最大值,Oracle 可以使用 `GREATEST()` 函数。 - **最小值**:SQL Server 用 `MIN()`,Oracle 使用 `LEAST()`。 - **处理 NULL 值**:SQL Server 有 `ISNULL()`,如...
LEAST函数返回一组值中的最小值。语法如下: ```sql LEAST(value1, value2, ...) ``` 例如: ```sql SELECT LEAST('', '', '') FROM DUAL; ``` #### 16. INITCAP 函数 INITCAP函数用于将字符串的第一个字母大写...
本文将详细探讨在SQLServer与Oracle数据库系统中常用的数学函数及字符串处理函数之间的差异。对于数据分析师、数据库管理员以及软件开发者而言,掌握这两种数据库管理系统之间的不同之处至关重要,尤其是在进行跨...
最后,除了以上这些,Oracle还提供了一些**其他特殊函数**,比如`ROWNUM`生成行号,`GREATEST()`和`LEAST()`返回两个或更多值中的最大值或最小值,`DBMS_OUTPUT.PUT_LINE()`用于在PL/SQL程序中打印输出,以及`USER`...
- **greatest/least**: 返回给定表达式列表中的最大值和最小值。 - **nvl/nvl2**: 在参数为null时提供替代值。 - **user/uid/userenv**: 返回用户或环境信息。 - **decode**: 等价于IF-THEN-ELSE语句。 - **nullif**...
- `GREATEST()` 和 `LEAST()`:找出一组值中的最大或最小值。 13. **处理 NULL 值**: - SQL Server 使用 `ISNULL()` 替换 NULL,如 `SELECT ISNULL(F2, 10)`。 - Oracle 使用 `NVL()`,如 `SELECT NVL(F2, 10)`...
- Oracle 提供 `GREATEST()` 和 `LEAST()` 函数,可以接收多个参数并返回最大或最小值 这些函数在使用时需要根据所选数据库系统调整语法,以确保正确执行。理解这些差异对于在不同数据库系统之间切换或编写跨平台...