开发者社区> 问答> 正文

SQL Server中是否有一个Max函数采用两个值,如.NET中的Math.Max?

我想写这样的查询:

SELECT o.OrderId, MAX(o.NegotiatedPrice, o.SuggestedPrice)
FROM Order o

但这不是MAX函数的工作原理,对吗?它是一个聚合函数,因此需要一个参数,然后返回所有行的MAX。

有人知道我该怎么做吗?

展开
收起
心有灵_夕 2019-12-29 13:08:27 3133 0
1 条回答
写回答
取消 提交回答
  • User-Defined Function如果您想拥有与示例相似的语法,则需要做一个,但是您是否可以CASE像其他人所说的那样,用一条语句轻松地内联地做您想做的事情。

    该UDF会是这样的:

    create function dbo.InlineMax(@val1 int, @val2 int)
    returns int
    as
    begin
      if @val1 > @val2
        return @val1
      return isnull(@val2,@val1)
    end
    
    

    ...你会这样称呼它...

    SELECT o.OrderId, dbo.InlineMax(o.NegotiatedPrice, o.SuggestedPrice) 
    FROM Order o
    
    2019-12-29 13:08:54
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载