加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

MSSQL 多字段依照范围求最大值实现方法

发布时间:2023-08-17 14:35:52 所属栏目:MsSql教程 来源:
导读:-->Title:生成測試數據

-->Author:wufeng4552

-->Date :2009-09-21 15:08:41declare @T table([Col1] int,[Col2] int,[Col3] int,[Col4] int,[Col5] int,[Col6] int,[Col7] int)

Insert @T

select 1
-->Title:生成測試數據
 
-->Author:wufeng4552
 
-->Date :2009-09-21 15:08:41declare @T table([Col1] int,[Col2] int,[Col3] int,[Col4] int,[Col5] int,[Col6] int,[Col7] int)
 
Insert @T
 
select 1,10,20,30,40,50,60 union all
 
select 2,60,45,52,85 union all
 
select 3,87,56,65,41,14,21
 
--方法1
 
select [col1],
 
max([col2])maxcol
 
from
 
(select [col1],[col2] from @t
 
union all
 
select [col1],[col3] from @t
 
union all
 
select [col1],[col4] from @t
 
union all
 
select [col1],[col5] from @t
 
union all
 
select [col1],[col6] from @t
 
union all
 
select [col1],[col7] from @t
 
)T
 
where [col2] between 20 and 60 --條件限制
 
group by [col1]
 
/*
 
col1 maxcol
 
----------- -----------
 
1 60
 
2 60
 
3 56
 
(3 個資料列受到影響)
 
*/
 
--方法2
 
select [col1],
 
(select max([col2])from
 
(
 
select [col2]
 
union all select [col3]
 
union all select [col4]
 
union all select [col5]
 
union all select [col6]
 
union all select [col7]
 
)T
 
where [col2] between 20 and 60) as maxcol --指定查詢範圍
 
from @t
 
/*
 
(3 個資料列受到影響)
 
col1 maxcol
 
----------- -----------
 
1 60
 
2 60
 
3 56
 
*/
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章