mssql sqlserver求数据行最大值(最小值)的方法分享


摘要:
下文讲述数据表中,如何求数据表中,一行数据中最大值(最小值)列数据的方法分享,如下所示:
实验环境:sqlserver 2017



在一些平时的sql脚本编写中,我们常常需要获取一个数据表中行 “列中最大值(最小值)”,
下文将讲述三种获取行“列值的最大值(最小值)”的方法,如下所示:

  ---获取行 最大列值--使用max 
  ---获取行 最小列值--使用min
 create table [maomao365.com]
(sort varchar(10),
 i    int,j int,k int)
 go
 insert into [maomao365.com]
 (sort,i,j,k)values
 ('A',1,4,5),
 ('B',2,67,98),
 ('C',8,36,57),
 ('D',9,87,32)
 go


 ---方法1: 虚拟表方法-效率高
 select sort,(select Max(v) from (values (i),(j),(k)) as #temp(v)) as v from [maomao365.com]
 ---方法2:行列转换的方法-效率高
 select sort, max(v) as v from [maomao365.com] unpivot (v for qty in (i,j,k)) as u group by sort 

 ---方法3:拼接虚拟表的方法
  select sort ,
  (select max(v) as v from 
  (      select a.i as v 
   union select a.j 
   union select a.k )v)
   as v  from [maomao365.com] as a 
 
 go
 truncate table  [maomao365.com]
 drop     table   [maomao365.com]
mssql_sqlserver_获取行中最大值列的值的方法

mssql_sqlserver_获取行中最大值列的值的方法