【发布时间】:2012-07-31 22:21:23
【问题描述】:
我希望在我的 TSQL 库中添加一些代码,以防止在列中的数据为空时在 SQL 中执行聚合。理想情况下,在 sql server 中会有一个 SUM_NN(对于 sum 不为空),如果任何值为空,则会引发错误。
由于您无法从 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 解决方案持开放态度。另外,我想知道其他数据库如何处理此类问题。
【问题讨论】:
-
为什么在NULL的情况下需要抛出异常?它如何帮助聚合?
标签: sql sql-server database tsql