`
wise007
  • 浏览: 32826 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

取产品名加小版本最大版的SQL

阅读更多

product表
Product     Version
H1000       1.0
H1000       1.1
H1000       1.2
H1000       2.0
H1000       2.1
H1000       3.0
H1001       1.0
H1001       1.1
…………………………………………
H100X       x.x

有如上所示资料形态的oracle table,按用户需求希望抓取产品名加小版本最大版的资料,如下所示:
Product       Version
H1000        1.2
H1000        2.1
H1000        3.0
H1001        1.1
…………………………………………

本来的想法,截版本小数点左和右两部分,对左部分循环,抓右部分最大值再输出,实际作业的复杂度太高,一句sql完成不了;
后来经提示,使用group by,明显工作量下降很多,这边记录下来做个以后的参考

select c.Product,c.xx1 ||'.'||c.xxx2 as Version from
(select b.Product,b.xx1,max(b.xx2) as xxx2 from
(select Product,substr(Version,1,instr(Version,'.')-1) as xx1,substr(Version,instr(Version,'.')+1) as xx2 from product) b
where b.xx1!='0' group by b.Product,b.xx1) c
order by Product,Version

 

分享到:
评论

相关推荐

    取最大值及SQL复合查询

    最大值SQL复合查询 最大值SQL复合查询最大值SQL复合查询最大值SQL复合查询最大值SQL复合查询

    易语言SQL基本语句模块

    易语言SQL基本语句模块源码,SQL基本语句模块,SQL_查询,SQL_添加,SQL_更新,SQL_删除,SQL_删除表,SQL_清空表,SQL_取记录数,SQL_取平均值,SQL_取最小值,SQL_取最大值,SQL_取首记录字段值,SQL_取尾记录字段值,SQL_取总计...

    SQL排除重复结果只取字段最大值分享

    如何用SQL排除重复结果只取字段最大值的记录?要求得到的结果(即是PID相同的记录只取ID值最大的那一条)。 代码如下:select * from [Sheet1$] awhere ID not exists (select 1 from [Sheet1$] where PID=a.PID and...

    sql学习 同时取最大最小值的案例.sql

    sql学习 同时取最大最小值的案例.sql

    按某一字段分组取最大(小)值所在行的数据

    按某一字段分组取最大(小)值所在行的数据

    SQL函数

    数学函数 abs(numeric_expr) 求绝对值 ceiling(numeric_expr) 取大于等于指定值的最小整数 exp(float_expr) 取指数 floor(numeric_expr) 小于等于指定值得最大整数 pi() 3.1415926............

    经典SQL语句大全

    15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.) select a,b,c from tablename ta where a=(select max(a) from ...

    SQLServer和Oracle的常用函数对比

    SQLServer和Oracle的常用函数对比 共计45点 1.绝对值 2.取整(大) 3.取整(小) 4.取整(截取) 5.四舍五入 6.e为底的幂 7.取e为底的对数 8.取10为底对数 9.取平方 10.取平方根 11.求任意数为底的幂 12.取...

    程序员的SQL金典.rar

    最好的sql教程 轻举技术之“纲”,张合用之“目”,锻造SQL高可用性数据库应用指南从理论到实践,凝聚SQL主流数据库最前沿的技术要领,本书将深入浅出讨论。  本书特色:主要介绍SQL的语法规则及在实际开发中的应用...

    对某一字段分组后,取出另一字段最大值的所有记录

    表:t_test -------------------------------------- id(int) cost(int) des Autoid(id) -------------------------------------- 1 10 aaaa 1 1 15 bbbb 2 1 20 cccc 3 ...取每一类id中cost最大的纪录

    mysql分组取每组前几条记录(排名) 附group by与order by的研究

    –按某一字段分组取最大(小)值所在行的数据 代码如下: /* 数据如下: nameval memo a 2 a2(a的第二个值) a 1 a1–a的第一个值 a 3 a3:a的第三个值 b 1 b1–b的第一个值 b 3 b3:b的第三个值 b 2 b2b2b2b2 b 4 b4b4 b ...

    sqlserver获取当前日期的最大时间值

    如果你有看到这篇,会看到Insus.NET在SQL Server2008使用最简单的方法取到午夜时间值。

    SQL数据库心得,分析得不错

    如果使用SQL Server验证的登录,它最大的好处是很容易通过Enterprise Manager实现,最大的缺点在于 SQL Server验证的登录只对特定的服务器有效,也就是说,在一个多服务器的环境中管理比较困难。使用SQL Server...

    程序员的SQL金典4-8

     11.1.4 产品销售额统计  11.1.5 统计销售记录的份额  11.1.6 为采购单分级  11.1.7 检索所有重叠日期销售单  11.1.8 为查询编号  11.1.9 标记所有单内最大销售量  11.2 排序  11.2.1 非字段排序规则  ...

    SQL语句大全 珍藏版2019-02-28

    名" [ASC, DESC] -- ASC 小到大 DESC 大到小 (09) 函数........................................ ............... ......................................5 函数 AVG (平均) COUNT (计数) MAX (最大值) MIN ...

    oracle的sql优化

     对Oracle共享池和缓冲区中的Sql必须要大小写都完全用上才能够匹配上 2.顺序问题  Oracle按照从右到左的顺序对数据表进行解析。因此From最后面的表为基础表,一般要选择记录数最少的表作为基础表。  对于Where...

    MYSQL,SQLSERVER,ORACLE常用的函数

    SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE --------- --------- --------- --------- ...

    sql server 2000实现在乘法表及行最大值

    利用一条查询语句查出乘法表以级对一行数据N字段做MAX处理

    insert和select结合实现”插入某字段在数据库中的最大值+1″的方法

    本文是mysql 数据库 问题一 将表一的数据导入表二...在表中插入数据时,某一字段取数据库中该字段的最大值,并+1,这个问题很多人都说用存储过程什么的解决,其实使用insert 和 select 结合就可以很好的解决这个问题啊

Global site tag (gtag.js) - Google Analytics