189 8069 5689

oracle怎么取最大 oracle取最大值函数

ORACLE在多个字段中取最值

首先,建立测试表,插入测试数据:

广汉网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。创新互联从2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。

create table test_a  (aa varchar2(6),bb varchar2(6));

当我们想要取每条记录中字段AA和BB的最大值(OR最小值)时,通常想到的逻辑是if-then-else;又或者是case- when-else-end?

emmm,其实一个关键词就可以搞定啦。取最大:greatest(字段1,字段2)取最小:least(字段1,字段2)。

select a.aa,a.bb,greatest(a.aa,a.bb) from test_a a ; --取字段aa和字段bb中的最大值

select a.aa,a.bb,least(a.aa,a.bb) from test_a a ; --取字段aa和字段bb中的最小值

END;

oracle中选出某个字段里面最大值的记录的sql语句怎么写

1、创建测试表,

create table test_max(id number, value number);

2、插入测试数据

insert into test_max values(1,12);

insert into test_max values(2,100);

insert into test_max values(3,55);

insert into test_max values(4,100);

insert into test_max values(5,50);

commit;

3、查询表中全量数据,select t.*, rowid from test_max t;

4、编写sql,使用rank分析函数,取value值为最大的记录; select t.* from (select t.*, rank() over(order by value desc) rk from test_max t) t where rk = 1;

oracle中取某个字段最大值问题

可以写一个function,把字母都过滤掉,只剩下数字,然后就可以根据数字排序了

CREATE OR REPLACE FUNCTION GETNUMBER(STR IN VARCHAR2) RETURN VARCHAR2 IS

V_TEMP   VARCHAR2(200);

V_RETURN VARCHAR2(200);

IDX      NUMBER := 1;

BEGIN

WHILE (IDX = LENGTH(STR)) LOOP

V_TEMP := SUBSTR(STR, IDX, 1);

IF (ASCII(UPPER(V_TEMP)) = 48 AND ASCII(UPPER(V_TEMP)) = 57) THEN

V_RETURN := V_RETURN || V_TEMP;

END IF;

IDX := IDX + 1;

END LOOP;

RETURN V_RETURN;

END GETNUMBER;

如何从数据库(oracle,mysql)中取出根据ID分组后,时间最大的数据

select *  from (select row_number() over(partition by id order by create_tiem desc) rn, id, create_time, ... , ... from table )t1 where rn = 1;

在这里...代表的是字段名称,将需要的字段名称放在这里,需要哪些放那些。

SELECT t.*FROM (select * from `table` order by `create_time` desc limit 10000000000) t GROUP BY t.id;

在这里就是先将数据进行排序然后再分组,然后取出的是最大的一个值,这里有点要注意,limit 10000000000这个根据不同的版本看是否要加这个,5.5之前的不用加,之后的要加,反正加上肯定没有错。

group by后取的一条数据默认是按主键id排序后的第一条


网站栏目:oracle怎么取最大 oracle取最大值函数
浏览路径:http://jkwzsj.com/article/hiidcs.html

其他资讯