Sql 选择两个或多个字段的最大值/最小值

Sql 选择两个或多个字段的最大值/最小值,sql,sql-server,tsql,Sql,Sql Server,Tsql,是否有与以下功能等效的快捷方式功能: CASE WHEN FieldA > FieldB THEN FieldA WHEN FieldA < FieldB THEN FieldB END 但是在TSQL中有什么捷径吗?出于好奇,其他DBMS语言是否有这样的内置函数?您似乎想要的是best()和least()。大多数数据库都提供这些非常有用的功能。我们可以游说微软添加它们 同时,apply的一个古怪用法可以解决这个问题: select t.*,

是否有与以下功能等效的快捷方式功能:

CASE
    WHEN FieldA > FieldB
    THEN FieldA
    WHEN FieldA < FieldB
    THEN FieldB    
END

但是在TSQL中有什么捷径吗?出于好奇,其他DBMS语言是否有这样的内置函数?

您似乎想要的是
best()
least()
。大多数数据库都提供这些非常有用的功能。我们可以游说微软添加它们

同时,
apply
的一个古怪用法可以解决这个问题:

select t.*, maxcol
from t cross apply
     (select max(col) as maxcol
      from (values (fieldA), (fieldB), (fieldC)
           ) v(col)
     ) m;

您似乎想要的是
最大的()
最小的()
。大多数数据库都提供这些非常有用的功能。我们可以游说微软添加它们

同时,
apply
的一个古怪用法可以解决这个问题:

select t.*, maxcol
from t cross apply
     (select max(col) as maxcol
      from (values (fieldA), (fieldB), (fieldC)
           ) v(col)
     ) m;

您可以在@或#临时表中插入所有文件,然后选择最大值或最小值。@MrTux我在问题中提到了该线程中给出的答案,我只是想看看是否有更有效的方法,或者如下面的答案所述,可以将其添加到TSQL中,特别是当它以其他语言存在时,您可以在@或#临时表中插入所有文件,然后选择最大值或最小值。@MrTux我在问题中提到了该线程中给出的答案,我只是想看看是否有更有效的方法,或者,如下面的答案所述,它可以添加到TSQL中,特别是如果它存在于其他语言中
select t.*, maxcol
from t cross apply
     (select max(col) as maxcol
      from (values (fieldA), (fieldB), (fieldC)
           ) v(col)
     ) m;