合并似乎适用于任何数量的参数并返回第一个非空值。我怎样才能写出这样的功能?一个没有固定数量的参数?如何在SQL Server中编写任意数量的参数函数
功能的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
只是使用coalesce? –
你不能在T-SQL中编写一个。我认为如果你编写一个扩展存储过程(例如C语言),你可以接受未知数量的参数,但是对该功能的支持将来会消失,并且它们与函数不同(它们不能被编写成一个更大的查询) –
你能展示一个你试图实现的样本吗?因为聚结应该尽可能地从你的问题中读取? – Tanner