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 ...
随机推荐
- xss原理绕过防御个人总结
xss原理 xss产生的原因是将恶意的html脚本代码插入web页面,底层原理和sql注入一样,都是因为js和php等都是解释性语言,会将输入的当做命令执行,所以可以注入恶意代码执行我们想要的内容 x ...
- 查询MySQL数据库中表结构
什么是表结构?表结构就是定义数据表文件名,确定数据表包含哪些字段,各字段的字段名.字段类型.及宽度,并将这些数据输入到计算机当中. 查询方法:以表‘employees’为例子 1.describe(d ...
- PHP pos() 函数
实例 输出数组中的当前元素的值: <?php$people = array("Peter", "Joe", "Glenn", &quo ...
- PHP imagecolorallocatealpha - 为一幅图像分配颜色和透明度
imagecolorallocatealpha — 为一幅图像分配颜色和透明度.高佣联盟 www.cgewang.com 语法 int imagecolorallocatealpha ( resour ...
- AutoWired注解和Lazy延迟加载
一.代码截图: @Lazy是延迟加载的意思, 容器启动时不创建对象, 当从容器中需要获取此对象时才创建. @Lazy//@Lazy注解可以用在类上, 还可以用在普通方法上,还可以用在构造方法上,还可以 ...
- navicat for mysql 连接报错1251的解决方法
这是因为比较新的mysql版本采用新的保密方式,若要用navicat连接需要改使用到的用户的密码方式:use mysql:ALTER USER 'root'@'localhost' IDENTIFIE ...
- CI4框架应用六 - 控制器应用
这节我们来分析一下控制器的应用,我们看到系统提供的控制器都是继承自一个BaseController,我们来分析一下这个BaseController的作用 use CodeIgniter\Control ...
- 阿里云ECS服务器购买流程
先说说什么是阿里云服务器ECS?云服务器(Elastic Compute Service,即弹性计算服务,简称ECS)是阿里云提供的性能卓越.稳定可靠.弹性扩展的IaaS(Infrastructure ...
- 机器学习 | 详解GBDT梯度提升树原理,看完再也不怕面试了
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第30篇文章,我们今天来聊一个机器学习时代可以说是最厉害的模型--GBDT. 虽然文无第一武无第二,在机器学习领域并没有 ...
- LDAP 使用记录
LDAP 命令记录 工作中用到了 LDAP,做一个简单记录. 概念性的东西不做阐述,只是记录常用命令,以便将来回顾. 想多做了解可以参考这个系列文章: https://blog.csdn.net/li ...