有时候我们需要从多个相同的列里(这些列的数据类型相同)找出最大的那个值,并显示 这里给出一个例子 ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |

有三种方法可以实现 方法一 ?
1 2 3 4 5 6 7 | |
方法二 ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
第一种方法使用values子句,将每行数据构造为只有一个字段的表,以后求最大值,非常巧妙 第二种方法使用行转列经常用的UNPIVOT 关键字进行转换再显示 第三种方法跟第一种方法差不多,但是使用union将三个UpdateByAppDate字段合并为只有一个字段的结果集然后求最大值 第一种方法的执行计划
第二种方法的执行计划
第三种方法的执行计划
总的来说,第一种方法的执行计划是最好的 注意,这里不涉及分组 ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | |
name列相同的话,是无法得出name分组之后的最大值,这里要注意一下
http://www.2cto.com/database/201510/447166.html