如何确定 SQL Server 列中的最大值

 2024-01-12 01:01:00  阅读 0

如何确定 SQL 列中的最大值

表 [dbo].[](

[] [int] (1,1) NOT NULL,

[] [整数] 空,

[] [整数] 空,

[] [整数] 空,

[] [整数] 空,

[] 钥匙

[]ASC

)WITH (= OFF, = OFF) ON []

) 在 []

请注意,表定义允许在其四列中使用 NULL 值。 在大多数情况下,我会尝试应用非 NULL 列,但在这种情况下,一个或多个日期列很可能包含 NULL 值; 我当然不想只是为了逃避非NULL问题而输入错误的数据。 所以我将所有日期列定义为 NULL 列。 图 1 给出了一些可以插入表中的示例值。

对于简单的 Min() 和 Max() 函数的作用,SQL 有自己的规则,即比较列中的值。 由于没有内置函数来比较任意两个值并确定最大值或最小值,因此您应该自己编写这样的函数。 我决定将它们称为 Min2() 和 Max2()。 参见列表 A。

sql 选择最小值_sql语句中的选择语句_sql选择函数

您可以使用以下代码测试它们:

dbo.Min2(23, 34)

dbo.Max2(23,NULL)

dbo.Min2(NULL, 34)

dbo.Max2(23,NULL)

要比较原始表中的值,您可以简单地嵌入函数调用,如下所示:

dbo.Max2( , dbo.Max2( , dbo.Max2( , ) ) )

来自 dbo。

根据原表,本次调用的结果如下:

10

27

81

还有一个问题:上面的代码将 NULL 转换为 0。在 Min2() 函数中,这意味着如果任何参数为 NULL,则结果为 0。大多数情况下我认为这是合适的,但在某些特殊情况下你可能想返回 NULL 而不是 0。

您可能编写了一个仅接受四个参数的函数,但这样的函数过于专业化,无法在其他情况下使用。 花点时间考虑更一般的情况,您将获得更多有用的函数。

标签: 函数 特殊 编写

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码