sql-server - 如何在 SQL Server 中编写任意数量的参数函数

标签 sql-server t-sql sql-function

Coalesce 似乎可以使用任意数量的参数并返回第一个不为空的参数。我怎样才能写出这样的函数呢?没有固定数量的参数?

函数 fMax 的使用示例:

select Length = dbo.fMax(box.Height, box.Width, box.Depth)
from dbo.tBox box
where box.ShipmentId = 1234

有了这样的函数,我就不必写这样的东西了:

select Length = (
   select MAX(side)
   from (values (box.Height), (box.Width), (box.Depth)) as sides(side))
from dbo.tBox box
where box.ShipmentId = 1234

最佳答案

如果您使用 SQL Server 2008 及更高版本,则可以使用 Table-Valued Parameters .

关于sql-server - 如何在 SQL Server 中编写任意数量的参数函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18978844/

相关文章:

sql - 查找 "missing"行

mysql - 混淆 "p OR q"、 "p AND q",其中 "p"等于 "false"、 "q"等于 "unknown"

没有 GROUP BY 的 SQL 聚合

sql - T-SQL 使用来自字段表中字符串的整个 WHERE 条件

PostgreSQL 递归函数返回记录集

postgresql - 函数在没有 STRICT 修饰符的情况下执行得更快?

stored-procedures - 替换 Apache Derby 中的字符串

sql-server - 在 SQL Server 中获取 HASHBYTES() 方法的不同结果

php - 如何使用 php $row 检索 sql datetime 对象?

sql - 在没有循环的情况下连接单个列中的记录?