SQL获取多个字段中最大小值
1、语法
最大值: GREATEST(expr_1, expr_2, ...expr_n)
最小值: LEAST(expr_1, expr_2, ...expr_n)
2、说明
GREATEST(expr_1, expr_2, ...expr_n)函数从表达式(列、常量、计算值)expr_1, expr_2, ... expr_n等中找出最大的数返回。
在比较时,OracIe会自动按表达式的数据类型进行比较,以expr_1的数据类型为准。下面以Oracle为例:
示例一【数值】
expr_1为数值型。按大小进行比较。
①、全部为数值型,取出最大值为16:
SELECT GREATEST(2, 5, 12, 3, 16, 8, 9) RESULT FROM DUAL;

②、部分为数值型,但是字符串可以根据expr_1的数据类型通过隐式类型转换转成数值型:
SELECT GREATEST(2, '5', 12, 3, 16, 8, 9) RESULT FROM DUAL;

③、部分为数值型,但是字符串不能通过隐式类型转换成数值型会报错,因为字符串A不能转换成数值型:
SELECT GREATEST(2, 'A', 12, 3, 16, 8, 9) RESULT FROM DUAL;

示例二【字符串】
expr_1为字符型。按首字母进行比较(如果相等则向下比较)。
①、全部为字符型,取出最大值G:
SELECT GREATEST('A', 'B', 'C', 'D', 'E', 'F','G') RESULT FROM DUAL;

②、全部为字符型,首字母相等:
SELECT GREATEST('A', 'B', 'C', 'D', 'E','GA', 'GAB') RESULT FROM DUAL;

③、部分为字符型,会把非字符型转换成字符型:
SELECT GREATEST('A', 6, 7, 5000, 'E', 'F','G') RESULT FROM DUAL;

示例三【时间】
expr_1为时间类型。
①、全部为时间类型:
SELECT GREATEST(sysdate,TO_DATE('2014-08-01','YYYY-MM-DD')) RESULT FROM DUAL;

②、部分为时间类型,不能进行隐式类型转换:
SELECT GREATEST(sysdate,'2014-08-01') RESULT FROM DUAL;

示例四【空值】
使用GREATEST取最大值的时候,当expr为函数的时候,不可避免的会产生空值。产生空值,函数GREATEST会怎么进行处理那:
①、expr_1为NULL时:
SELECT GREATEST(NULL, 'B', 'C', 'D', 'E','GA', 'GAB') RESULT FROM DUAL;

②、expr_1不为NULL时,其它的expr为NULL时:
SELECT GREATEST('A', 'B', 'C', 'D', 'E',NULL, 'GAB') RESULT FROM DUAL;

由上可以发现,只要GREATEST的expr有一个为NULL,都会返回NULL。
SQL获取多个字段中最大小值的更多相关文章
- postgresql 函数获取多个字段的数字大小值
1.GREATEST(n1,n2,n3,..........) 获取最大值 testdb=#SELECT GREATEST(,,,,,,,,,); +------------------------- ...
- SQL SERVER将某一列字段中的某个值替换为其他的值 分类: MSSQL 2014-11-05 13:11 67人阅读 评论(0) 收藏
SQL SERVER将某一列字段中的某个值替换为其他的值 UPDATE 表名 SET 列名 = REPLACE(列名 ,'贷','袋') SQL SERVER"函数 replace 的参数 ...
- SQL中删除同一字段中重复的值
/////////////////////目地:ZDJZ_DIS中 name字段有重复的值,删除重复的值 DELETE * FROM ZDJZ_DIS WHERE NAME IN (select NA ...
- SQL —— 获取重复某个字段的第一条记录
----------用来双重排序,且获取唯一 go SELECT ROW_NUMBER() OVER (ORDER BY AScore DESC,ATime ASC) AS Rank, * FROM ...
- sql 获取某一时段中每一天中最大的时间的一条记录
SELECT *FROM ( SELECT ROW_NUMBER() OVER( PARTITION BY CONVERT(CHAR(10), DataTime, 120) ORDER BY Data ...
- 教你在Java的普通类中轻松获取Session以及request中保存的值
曾经有多少人因为不知如何在业务类中获取自己在Action或页面上保存在Session中值,当然也包括我,但是本人已经学到一种办法可以解决这个问题,来分享下,希望对你有多多少少的帮助! 如何在Java的 ...
- C# 如何获取自定义的config中节点的值,并修改节点的值
现定义一个方法 DIYConfigHelper.cs using System; using System.Xml; using System.Configuration; using System. ...
- SQL查询出某字段不等于某值的行(其中有为NULL的字段)
表1如下:TBD1100 TBD1101 TBD1102------------------------------------------ 1001 水果 ...
- 获取web.xml配置文件中的初始化值
TestServletConfig.java package com.huawei.config; import java.io.IOException;import java.util.Enumer ...
随机推荐
- ThreadLocal源码分析以及why导致内存泄露
1 ThreadLocal? This class provides thread-local variables. These variables differ from their normal ...
- 02_Linux实操篇
第五章 VI和VIM编辑器 5.1. VI和VIM基本介绍 Vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器.由于对Unix及Linux系统的任何版本,Vi ...
- PHP is_nan() 函数
实例 判断一个值是否为非数值: <?phpecho is_nan(200) . "<br>";echo is_nan(acos(1.01));?>高佣联盟 ...
- Spring进阶案例之注解和IoC案例
Spring进阶案例之注解和IoC案例 一.常见的注解分类及其作用 从此前的基于xml的IoC开发案例和依赖注入案例中,我们可以将xml配置归纳为: <bean id="" ...
- RectTransform的localPosition与anchoredPosition(3D)的区别
RectTransform继承自Transform,用于描述矩形的坐标(Position),尺寸(Size),锚点(anchor)和中心点(pivot)等信息,每个2D布局下的元素都会自动生成该组件. ...
- 原生JS 实现点击按钮创建元素
要求: 点击按钮,随机生成一个20px-100px宽度正方形,随机颜色,随机位置,不能出可视区域外 思路:(1)创建按钮,为按钮添加事件侦听 (2)触发事件,创建一个元素 (3)设置元素样式,包括大小 ...
- ACwing 147 数据备份 贪心 set
LINK:数据备份 以前做过这种贪心 不过没有好好的证明 这次来严格的证明一下. 不难发现 最后的答案 选择的所有两对公司必然相邻. 所以排序后 把数组变成ai-ai-1. 这样问他的模型就是 n-1 ...
- 浅谈js数组中的length属性
前言 一位正在学习前端的菜鸟,虽菜,但还未放弃. 内容 首先,我们都知道每个数组都有一个length属性 这个length属性一般我们用来循环遍历的约束,一般我们都会把他认为是该数组里面有几个元素这个 ...
- Java web 小测验
题目要求: 1登录账号:要求由6到12位字母.数字.下划线组成,只有字母可以开头:(1分) 2登录密码:要求显示“• ”或“*”表示输入位数,密码要求八位以上字母.数字组成.(1分) 3性别:要求用单 ...
- 10、Java 数组的定义和使用
1.数组的定义 首先举一个小例自:如果你现在需要定义100个int类型的变量,那么按照前俩节的做法为: int a = 1, b=2 , c=3.......; 可以发现我们的代码特别的冗余,而且不美 ...