我正在尝试在3列中找到最大的行值。我尝试了几种方法,但都失败了。
原始数据:
| +────────────────────+++──────────────── ──────++────────────| max_adsl_predicted_down | max_sfbb_predicted_down | max_ufbb_predicted_down |+────────────────────+++────────────────── ────+────────────────| 10 | 60 | -1 || 10 | 80 | 350 || 10 | 1 | -1 || | | |+────────────────────+++────────────────── ────+──────────────────++
所需输出:+─────────────| max_download |+─────────────| 60 || 350 || 10 || |+─────────────
数据示例和用于生成它的SQL
'''SQL
选择顶部(379)rnmax_adsl_predicted_down,max_sfbb_predicted_down,max_ufbb_predicted_down从表
'''
15 80 -115 80 -115 80 -115 80 -115 80 -115 80 -110 80 35010 80 350
使用CASE表达式:
SELECT TOP(379) CASE WHEN max_ufbb_predicted_down > max_adsl_predicted_down AND max_ufbb_predicted_down > max_sfbb_predicted_down THEN max_ufbb_predicted_down WHEN max_sfbb_predicted_down > max_adsl_predicted_down AND max_sfbb_predicted_down > max_ufbb_predicted_down THEN max_sfbb_predicted_down WHEN max_adsl_predicted_down > max_sfbb_predicted_down AND max_adsl_predicted_down > max_ufbb_predicted_down THEN max_adsl_predicted_down END AS max_download FROM table
8080808080808080
使用MAX表达式:
“”“ SQL选择顶部(379)(选择最大(速度)从(VALUES(max_ufbb_predicted_down),(max_adsl_predicted_down),(max_sfbb_predicted_down))作为速度(speeds))AS max_download从表
“”“
8080808080808080
我不明白为什么这些方法没有连续返回最高值。您能否提出解决方案或这些方法不起作用的原因?
谢谢,
我正在尝试在3列中找到最大的行值。我尝试了几种方法,但都失败了。原始数据:| +──────────────────+++────────────── ────────+────────...
SQL Server不像其他许多数据库一样支持标量GREATEST
函数。取而代之的是,我们可以使用CASE
表达式: