我希望在我的 TSQL 库中添加一些代码,以防止在列中的数据为空时在 SQL 中执行聚合。理想情况下,如果任何值为空,在 sql server 中会有一个 SUM_NN(对于 sum no null),它会引发错误。
由于您无法从 UDF 引发错误,因此我能想到的唯一方法看起来像这样,尽管我不喜欢这种解决方案:
CREATE FUNCTION dbo.NULL_TEST_F(@arg FLOAT)
RETURNS FLOAT
AS
BEGIN
IF(@arg IS NULL)
SELECT 1/0
RETURN @arg
END
注意:我认为这是一个愚蠢的解决方案,但是当我丢失数据时,我已经被烧毁了太多次。此外,我们使用的是 SQL Server 2005,但我对 2008 和 2012 解决方案持开放态度。此外,我想知道其他数据库如何处理此类问题。