sql 语句 获取最大值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 语句 获取最大值相关的知识,希望对你有一定的参考价值。
表数据如下,我现在要获取同类型中最大的一个请问该怎么操作?
这样写得出的结果是否不妥?在什么时候会有bug?
select max(Aid) from ApIn where aId like 'SQ801%'
select Aid from ApIn where aId like 'SQ801%' order by Aid desc
坐等高人
回二楼
我是要获取同类型中最大的,没有like 不行
注:类型为 SQ801 SQ802 。。。。
我觉得这样比较安全
select aId = max(cast(right(aId,4) as int)) from ApIn where aId like 'SQ801%'
sql 语句获取一列中的最大值使用MAX() 函数
一、MAX() 函数返回指定列的最大值。
二、SQL MAX() 语法:
SELECT MAX(column_name) FROM table_name;
三、参数解释
column_name:列名
table_name:表名
扩展资料:
最小值语句
MIN() 函数
MIN() 函数返回指定列的最小值。
SQL MIN() 语法
SELECT MIN(column_name) FROM table_name;
参考资料:百度百科-SQL MAX
参考技术Asql 语句 获取一列中的最大值使用MAX() 函数
一、MAX 函数功能:返回一列中的最大值。NULL 值不包括在计算中。
二、SQL MAX() 语法:
SELECT MAX(column_name) FROM table_name
注释:MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。
三、检索aid字段的最大值语句:
select max(aid) as '最大值' from aaa;
结果如图:
扩展资料:
SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
参考技术Bsql 语句 获取一列中的最大值使用MAX() 函数
一、MAX 函数功能:返回一列中的最大值。NULL 值不包括在计算中。
二、SQL MAX() 语法:
SELECT MAX(column_name) FROM table_name
注释:MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。
三、例表格:aaa,表结构如图
检索aid字段的最大值语句:
select max(aid) as '最大值' from aaa;结果如图:
参考技术C select max(Aid) from ApIn where aId like 'SQ801%'select top 1 Aid from ApIn where aId like 'SQ801%' order by Aid desc
只要aid列的位数是一致的,以上两条语句都可以得到你要的结果
否则如果aid列的位数不一致,以上两条语句都有可能得出的结果不是你要的
-----
如果不信你可以找些数据测试下本回答被提问者采纳 参考技术D 若是只是根据你的输入条件来查指定某一类型的话,则用你的写法就可以:
select max(Aid) from ApIn where aId like 'SQ801%'
select Aid from ApIn where aId like 'SQ801%' order by Aid desc
但前提是你所指的"同类型"必须是以"前5位"来分类的.
若要显示所有以"前5位"来分类各分类的最大值,则这样写:
select left(Aid,5) as type_Aid, max(Aid) as Type_Max_Aid
from ApIn
group by left(Aid,5)
结合排序、选择进入和 where 语句以在 oracle sql 中查找最大值
【中文标题】结合排序、选择进入和 where 语句以在 oracle sql 中查找最大值【英文标题】:combining a sort, select into, and where statement to find a max value in oracle sql 【发布时间】:2013-08-04 02:29:37 【问题描述】:我正在尝试执行 select into 语句以从列中获取最大值。这就是我所拥有的:
SELECT stdid INTO v_stdid
FROM (SELECT stdid FROM STUDENT ORDER BY stdid DESC)
WHERE ROWNUM = 1;
虽然我没有得到正确的值。它应该是 32,但返回的是 9(我有一个 dbms_output_line(v_stdid) 来检查该值。当我将顺序更改为 ASCENDING 我的值更改时,所以我知道发生了一些事情。但是为什么我不能得到正确的最大值?我觉得排序一定没有正确完成。
谢谢!
【问题讨论】:
我面前没有oracle,但你试过SELECT max(stdid) INTO v_stdid
感谢 Nilesh - 我试过了,但仍然得到错误的值(9 而不是 32)。
嗨,Nilesh - 现在 max 可以工作了。 :) 我试图在 varchar 值上使用 max,所以这让我很困惑。我使用了它并且它起作用了: select max(to_number(stdid)) into v_stdid from student;再次感谢!
+1 - 找到自己的答案
ORDER BY function not working in Oracle的可能重复
【参考方案1】:
看来TOP关键字可能对你有帮助。
SELECT stdid INTO v_stdid
FROM (SELECT TOP 1 FROM STUDENT ORDER BY stdid DESC);
我相信这可以消除您遇到的问题,方法是将第二次选择的前 1 个结果的 stdid 返回到 v_stdid,而不必担心 NUMROW 所具有的一些复杂性,如下所示:
Selecting the second row of a table using rownum
【讨论】:
感谢 Mattpic - 不幸的是不能使用 TOP 关键字。这似乎是针对 SQL Select 的。我发现一篇文章说,相当于 TOP 的 Oracle 正在使用 ROWNUM,但就像您提供的链接指出的那样,ROWNUM 会产生自己的问题。 很高兴我能提供帮助,但没有意识到您使用的是 Oracle。简单的解决方法,但是如果您将 ROWNUM 放在括号内,是否可以解决问题? 将 ROWNUM 添加到子查询也不起作用,因为它在排序之前应用,因此子查询不会重新调整最大值。【参考方案2】:你可以这样做:
SELECT max(stdid) INTO v_stdid
FROM STUDENT;
但是,我相信您的问题是 stdid
被存储为字符而不是数字。因此,将其转换为整数:
select max(cast(stdid as int)) into v_stdid
from student;
这也适用于您的原始公式:
SELECT stdid INTO v_stdid
FROM (SELECT stdid FROM STUDENT ORDER BY cast(stdid as int) DESC)
WHERE ROWNUM = 1;
【讨论】:
以上是关于sql 语句 获取最大值的主要内容,如果未能解决你的问题,请参考以下文章