我正在使用 sql 在视图上编写数据块中的查询,并希望计算跨多个视图的更新时间戳列的最大日期。例如,我正在将表 a 与表 b 连接起来,并且想知道 max(a.updt_ts,b.updt_ts)。由于 max 函数不能超过一列,我想创建一个函数。任何帮助是极大的赞赏。以下是我所拥有的:
CREATE temporary FUNCTION ufnGetMaxDt (@Date1 DATETIME2,@Date2 DATETIME2)
BEGIN
DECLARE @ret DATETIME2
, @MinDt datetime2;
SET @MinDt = cast('1900-01-01' as datetime2);
IF (@Date1) is null SET @Date1 = @MinDt;
IF (@Date2) is null SET @Date2 = @MinDt;
SET @ret = CASE When @Date1 >= @Date2
Then @Date1
else @Date2
END;
IF (@ret IS NULL)
SET @ret = @MinDt; -- Dummy date
RETURN @ret;
END
GO