有时候我们需要从多个值中快速找出最大值,GREATEST 函数会可以帮我们实现。它的作用很直接:接收多个参数,返回其中的最大值。

       基本用法

        语法非常简单:

GREATEST(表达式1, 表达式2, ..., 表达式N)

        参数可以是常量、列名或计算表达式,只要它们的数据类型兼容(比如都是数字、都是日期,或可隐式转换为同一类型)。

        举几个例子

  1. 比较数字
    SELECT GREATEST(15, 8, 22, 5); -- 结果:22

  2. 比较日期(适用于日期时间类型):
    SELECT GREATEST('2023-01-15', '2024-03-20', GETDATE()); -- 返回最新的日期

  3. 结合列使用:假设有一张 product 表,包含 price1price2price3 三列,想找出每一行的最高价格:

--测试数据
if not object_id(N'Tempdb..#product') is null
	drop table #product
Go
Create table #product([price1] int,[price2] int,[price3] int)
Insert #product
select 1,2,3 union all
select 4,5,6
Go
--测试数据结束
Select GREATEST(price1, price2, price3) from #product

注意事项

  • 版本限制GREATEST 是 SQL Server 2022 及以上版本才支持的函数,低版本无法使用(可以用 CASE 表达式替代)。
  • 类型兼容:如果参数类型不兼容(比如混合数字和字符串),会报错,需提前做好类型转换。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐