用一条SQL实现:一行多个字段数据的最大值
作者:Andy 发布时间:2008-12-31 13:37:00
原问题是这样的:如何用SQL语句(不是Oracle),求出下表每一行的5个字段中的最大值,最后生成一个新字段。
例如:
第一行最大值 -5.0 (c字段) 空值忽略
第二行最大值 -5.5 (a字段) 空值忽略
ab c d e
-21.5-15.0-5.0
-5.5-11.5
-5.0-16.5-10.5
-9.0
-11.5-14.0-8.5
-10.5-11.0-15.5-14.0-12.5
-15.0-11.0-10.5-17.0
-12.5-8.0-14.5
-8.0-12.0
-6.5-11.5-19.5-22.5-20.0
-13.0-7.5-14.0
-8.0-12.0-12.0
。。。。。。
解决方法如下:
1create table T(A decimal(10,1), B decimal(10,1), C decimal(10,1), D decimal(10,1), E decimal(10,1))
2insert T select -21.5,-15.0,-5.0, null, null
3union all select -5.5,-11.5,null, null, null
4union all select -1.0,-16.5,-10.5, null, null
5
6
7select *,
8max_value=(
9select max(A) from
10(
11select A
12union all
13select B
14union all
15select C
16union all
17select D
18union all
19select E
20)tmp)
21from T
22
--result
A B C D E max_value
------------ ------------ ------------ ------------ ------------ ------------
-21.5 -15.0 -5.0 NULL NULL -5.0
-5.5 -11.5 NULL NULL NULL -5.5
-1.0 -16.5 -10.5 NULL NULL -1.0
(3 row(s) affected)
这一方法,自我感觉不错,还真的第1次看到这样的写法。原来SQL里面还可以实现这样的写法,又学到了一点知识。


猜你喜欢
- 本文实例讲述了Python面向对象程序设计类变量与成员变量、类方法与成员方法用法。分享给大家供大家参考,具体如下:类变量与成员变量在类中声明
- 前言本文从单元测试实践角度出发,提升对代码质量的意识。本文内容主要包括:单元测试、Mock测试、基准测试。测试测试可以提高代码的质量、减少事
- 1、yield,将函数变为 generator (生成器)例如:斐波那契数列def fib(num): a, b, c = 1,
- alert("abacacf".replace('a','9')); alert(&qu
- 解释机器学习模型是一个困难的过程,因为通常大多数模型都是一个黑匣子,我们不知道模型内部发生了什么。创建不同类型的可视化有助于理解模型是如何执
- 最初开发的 Matplotlib,仅支持绘制 2d 图形,后来随着版本的不断更新, Matplotlib 在二维绘图的基础上,构建了一部分较
- 最近着迷上了 Python用Python给小宝做的数学算数口算练习程序(2015年1月添加四则运算)!给小宝做的口算游戏:#用Python给
- 前言本文主要给大家介绍的是关于Python中表达式x += y和x = x+y 区别的相关内容,分享出来供大家参考学习,下面来看看详细的介绍
- Tkinter 实现上述功能并不复杂,只要使用 Tkinter 的相关组件和一些简单的逻辑处理即可,在编写这个案例的过程中大家要做到温故而知
- 本文实例讲述了Python素数检测的方法。分享给大家供大家参考。具体如下:因子检测:检测因子,时间复杂度O(n^(1/2))def is_p
- 我们平日办公时用得最多的软件是Execl、Word或WPS Office等,你的计算机中一定储存着大量的XLS、DOC、WPS文件吧!网页制
- 一、总结(点击显示或隐藏总结内容)一句话总结:xlwings 是 Python 中操作Excel的一个第三方库,支持.xls读写,.xlsx
- 水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。本文将通过Python代码实现打印水仙花数,具体如
- value_counts()方法返回一个序列Series,该序列包含每个值的数量(对于数据框中的任何列,value_counts()方法会返
- 前言本文主要给大家介绍了关于python中Numpy和Pandas使用的相关资料,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介
- 0X01函数说明:python range() 函数可创建一个整数列表,一般用在 for 循环中。0X02函数语法:range(start,
- 一、普通进度条示例代码import sysimport timedef progress_bar(): for i in ran
- 滚动回归所谓滚动回归,通常用在时间序列上。记当前时刻为 t,回归时长为 s,则一直使用 当作自变量来预测 。使用滚动回归的目的通常是为了避免
- MySQL默认编码是latin1,因业务需要把它转到UTF8。1、导出数据导出表结构 mysqldump -d dataname >
- 第一次使用csdn写一个文章,如果有什么写的不对的地方,欢迎在下面评论指正,谢谢各位。1.明确要使用的包首先就是opencv的函数库,还有p