如何在Sql server中实现标量MAX(如Math.Max).(在本质上我想实现类似Max(表达式,0)的东西,使负值替换为0.)
我已经在其他线程中看到了解决方案
什么是最好的?为什么Sql Server没有这样内置的东西?我看不到任何并发症?
在所有其他主要系统中,调用此函数GREATEST.
SQL Server 严重缺乏它.
你可以制作一堆case语句,或使用类似的东西:
SELECT (
SELECT MAX(expression)
FROM (
SELECT expression
UNION ALL
SELECT 0
) q
) AS greatest
FROM table_that_has_a_field_named_expression
Run Code Online (Sandbox Code Playgroud)
后者比CASE声明的效果要差一些.
您想在sql server中创建一个名为MAX的用户定义标量函数,以两个参数作为输入,一个表达式和一个最小值,如果超过最小值则返回表达式,否则返回最小值?
我不会担心标量函数的性能,让服务器来做。我还会使用 IF 而不是 CASE 来测试 > 最小值。
我猜,SQL Server 没有为您提供内置函数,因为他们认为它不会得到足够广泛的使用。
| 归档时间: |
|
| 查看次数: |
4371 次 |
| 最近记录: |