① sql语句 如何取最后一次的值[或者说如何取某个字段最大数值及其相应行的其他字段值]
字段a 字段b 字段c
SP000016964 5 20
SP000016964 7 30
SP000016964 1 15
SP000017755 4 16
SP000017755 8 12
最后得到下面结果
SP000016964 7 30
SP000017755 8 12
--用如下语句即可
select z.* from z, (select a,max(b) as max_b from z group by a) z1
where z.a = z1.a and z.b = z1.max_b
但是如果出现如下情况下话,可能数据就有问题了,即第2个字段有多个相同的最大值,这个时候规则会变的复杂,如果是oracle数据库的话,可以考虑oracle的分析函数来搞定
SP000016964 5 20
SP000016964 7 30
SP000016964 7 15
② SQL 查询一列中,数字字符串中,最后一个数字字段的简单语句
结论:作为补充,我们使用MySQL字符串操作函数进行筛选。
like
只要是字符串操作函数,可达到筛选目的的一般均可使用。
但是查询性能需视情况而定。
以上。
③ sql怎么让其中一行拍到最后
人为的给它一个排序规则,让它排到最后就可以了啊orderby。好,提供你一种方法:
表名test05,表列:
这里的100是自己写的超过表行数的值,也可以写其他的
④ sql select语句,如何查找最后一行的数据
在sql中根本就没有你说的那种用法。。
如果你想取最后一行数据的话,得根据你的表结构和实际数据的情况进行编写sql语句。
如果你就想求一条完全能用的sql语句,基本上是不太可能的。。
⑤ SQL中如何同时查询出第一和最后一条记录!
如果是没有规律的取值,那么是没有实际意义的,如果是为了找字段的取值范围,那么可以通过升序和降序查询两次,在作为一个结果输出实现。
sql:select * from(select top 1 * from tblname order by id desc)
union (select top 1 * from tblname order by id asc);
解释:先降序查询出第一条记录,然后在升序查询出第一条记录,之后将结果作为两条数据输出。
⑥ PL SQL 查询结果为空的怎么排序到最后面
1、只有一个查询结果的查询:
select min(to_char(b.arrive_date,'yyyymmdd')||lpad(b.arrive_time,6,0)||c.xs_mc)
into vtmpstr
from tb_evt_bag_mail_rela a, tb_evt_route_bag_rela b, tb_jgjm c
where a.mail_num = vmail_num
。。。。。。
对这个查询,只需判断变量vtmpstr是否为空就可以了,即:
if vtmpstr is null then
注意:查询中用聚合函数才可以这样用,如果直接取一个值,又没有结果,则会出错跳出模块,跑到例外处理那儿去了,如下面语句:
select city_name into vcity_jdj
from tb_county
where xs_code=substr(vrcv_area,1,4);
如果没有查询结果,或者多个查询结果,都会出错跑到例外处理那儿,所以应该写成下面格式:
select min(city_name) into vcity_jdj
from tb_county
where xs_code=substr(vrcv_area,1,4);
2、游标的查询结果:
open cur_get_trans(vin_date,vmail_num);
loop
fetch cur_get_trans
into vdeal_date,vdeal_time,vdeal_org_code,vlabel_strip,
vmway_code,vflight_name,vdepart_date,vdepart_time;
--判断查询结果
if cur_get_trans%found then
。。。
else
。。。
end if;
或者退出循环处理,即:
open cur_get_trans(vin_date,vmail_num);
loop
fetch cur_get_trans
into vdeal_date,vdeal_time,vdeal_org_code,vlabel_strip,
vmway_code,vflight_name,vdepart_date,vdepart_time;
exit when cur_get_mail%notfound;
--处理有结果的查询
end loop;
--处理无结果的查询
--注意,有查询结果处理完毕也会执行到此处,所以要区分上面是否进行过有结果的处理。
close cur_get_trans;
===================================================================
附:
1、游标相关的4个语句:
declare(声明)、open(打开)、fetch(取数)、close(关闭)。
2、游标相关的4个属性:%isopen, %found, %notfound,和 %rowcount
(1)%isopen:布尔型,用于检测游标是否已经打开。如果游标已经打开,返回true,否则返回false。
(2)%found:布尔型,判断最近一次执行fetch语句后,是否从缓冲区中提取到数据,返回true,否则返回false。
(3)%notfound:与%found相反。
(4)%rowcount:数值型,返回到目前为止已经从游标缓冲区提取数据的行数。在fetch语句没有执行之前,该属性值为0。
使用隐式游标%found属性,sql%found;
使用显示游标%found属性,cur_get_trans%found。
⑦ sql 如何得到最后一条的记录
实现思路:如果是正序的取出最后一条,那么就是倒叙取出第一条。所以排下序,之后取出第一条就可以了。
sql:;
以上就是取出来第一条记录,如果想取出来最后一条:
sql:;
⑧ sql 取最后一条记录
SQL Server 查询最后一条记录有两种方法,一种是使用TOP命令,一种是使用LIMIT命令,具体方法如下:
1、使用TOP
SELECT TOP 1 * FROM user;
SELECT TOP 1 * FROM user order by id desc;
2、 使用LIMIT
SELECT * FROM user LIMIT 1;
SELECT * FROM user ORDER BY id ASC LIMIT 1;
SELECT * FROM user ORDER BY id DESC LIMIT 1;
(8)sql怎么做排序的最后一个值扩展阅读:
SQL函数
1、算数函数
ABS (数值),绝对值
MOD (被除数, 除数),求余
ROUND (对象数值, 保留小数的位数),四舍五入
2、字符串函数
CONCAT (字符串1, 字符串2, 字符串3),拼接
LENGTH (字符串),字符串长度
LOWER (字符串),小写
UPPER (字符串) ,大写
REPLACE (对象字符串,替换前的字符串,替换后的字符串),替换
SUBSTRING(对象字符串 FROM 截取的起始位置 FOR 截取的字符数),截取